目前本站已有 十几万 份求职资料啦!


部分IT公司笔试算法题

12-17 15:54:39 来源:http://www.qz26.com 笔试题目   阅读:8838
导读:#define M 5int k, Found, Flag[N];int Stamp[M] = {0, 1, 4, 12, 21};// 在剩余张数n中组合出面值和Valueint Combine(int n, int Value) {if(n >= 0 && Value == 0) {Found = 1;int Sum = 0;for(int i=0; i Sum += Stamp[Flag];printf("%d ", Stamp[Flag]);}printf("\tSum=%d\n\n", Sum);}else for(int i=1; i0; i++)if(Value-Stamp >= 0) {Flag[k++] = i;Combine(n-1, Value-Stamp);Flag[--k] = 0;}return Found;}int main(int argc, char* argv[]) {for(int i=1; Combine(N, i)
部分IT公司笔试算法题,标签:银行笔试题目,企业笔试题目,http://www.qz26.com
  #define M 5

  int k, Found, Flag[N];

  int Stamp[M] = {0, 1, 4, 12, 21};

  // 在剩余张数n中组合出面值和Value

  int Combine(int n, int Value) {

  if(n >= 0 && Value == 0) {

  Found = 1;

  int Sum = 0;

  for(int i=0; i

  Sum += Stamp[Flag];

  printf("%d ", Stamp[Flag]);

  }

  printf("\tSum=%d\n\n", Sum);

  }else for(int i=1; i0; i++)

  if(Value-Stamp >= 0) {

  Flag[k++] = i;

  Combine(n-1, Value-Stamp);

  Flag[--k] = 0;

  }

  return Found;

  }

  int main(int argc, char* argv[]) {

  for(int i=1; Combine(N, i); i++, Found=0);

  }

  10、大整数数相乘的问题。(这是20xx年在一考研班上遇到的算法题)

  void Multiple(char A[], char B[], char C[]) {

  int TMP, In=0, LenA=-1, LenB=-1;

  while(A[++LenA] != '\0');

  while(B[++LenB] != '\0');

  int Index, Start = LenA + LenB - 1;

  for(int i=LenB-1; i>=0; i--) {

  Index = Start--;

  if(B != '0') {

  for(int In=0, j=LenA-1; j>=0; j--) {

  TMP = (C[Index]-'0') + (A[j]-'0') * (B - '0') + In;

  C[Index--] = TMP % 10 + '0';

  In = TMP / 10;

  }

  C[Index] = In + '0';

  }

  }

  }

  int main(int argc, char* argv[]) {

  char A[] = "21839244444444448880088888889";

  char B[] = "38888888888899999999999999988";

  char C[sizeof(A) + sizeof(B) - 1];

  for(int k=0; k

  C[k] = '0';

  C[sizeof(C)-1] = '\0';

  Multiple(A, B, C);

  for(int i=0; C != '\0'; i++)

  printf("%c", C);

  }

  11、求最大连续递增数字串(如“ads3sl456789DF3456ld345AA”中的“456789”)

  int GetSubString(char *strSource, char *strResult) {

  int iTmp=0, iHead=0, iMax=0;

  for(int Index=0, iLen=0; strSource[Index]; Index++) {

  if(strSource[Index] >= '0' && strSource[Index] <= '9' &&

  strSource[Index-1] > '0' && strSource[Index] == strSource[Index-1]+1) {

  iLen++; // 连续数字的长度增1

  } else { // 出现字符或不连续数字

  if(iLen > iMax) {

  iMax = iLen; iHead = iTmp;

  }

  // 该字符是数字,但数字不连续

  if(strSource[Index] >= '0' && strSource[Index] <= '9') {

  iTmp = Index;

  iLen = 1;

  }

  }

  }

  for(iTmp=0 ; iTmp < iMax; iTmp++) // 将原字符串中最长的连续数字串赋值给结果串

  strResult[iTmp] = strSource[iHead++];

  strResult[iTmp]='\0';

  return iMax; // 返回连续数字的最大长度

  }

  int main(int argc, char* argv[]) {

  char strSource[]="ads3sl456789DF3456ld345AA", char strResult[sizeof(strSource)];

  printf("Len=%d, strResult=%s \nstrSource=%s\n",

  GetSubString(strSource, strResult), strResult, strSource);

  }

  12、四个工人,四个任务,每个人做不同的任务需要的时间不同,求任务分配的最优方案。(20xx年5月29日全国计算机软件资格水平考试——软件设计师的算法题)。

上一页  [1] [2] [3] [4] [5] [6] [7] [8]  下一页


Tag:笔试题目银行笔试题目,企业笔试题目求职笔试面试 - 笔试题目
【字号: 】 【打印】 【关闭
《部分IT公司笔试算法题》相关文章
最新更新
推荐热门
联系我们 | 网站地图 | 财务资料 | 范文大全 | 求职简历 | 财会考试 | 成功励志
Copyright 二六求职资料网 All Right Reserved.
1 2 3 4 5 6 7 8 9 10