当前位置:七七学习网文档大全求职指南求职笔试面试笔试题目IT公司笔试常考的算法题» 正文

IT公司笔试常考的算法题

[10-10 21:21:19]   来源:http://www.77xue.com  笔试题目   阅读:8993
概要:// 该字符是数字,但数字不连续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&qu
IT公司笔试常考的算法题,标签:驾照笔试题目,腾讯笔试题目,http://www.77xue.com

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

  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日全国计算机软件资格水平考试——软件设计师的算法题)。

  #include "stdafx.h"

  #define N 4

  int Cost[N][N] = { {2, 12, 5, 32}, // 行号:任务序号,列号:工人序号

  {8, 15, 7, 11}, // 每行元素值表示这个任务由不同工人完成所需要的时间

  {24, 18, 9, 6},

  {21, 1, 8, 28}};

  int MinCost=1000;

  int Task[N], TempTask[N], Worker[N];

  void Assign(int k, int cost) {

  if(k == N) {

  MinCost = cost;

  for(int i=0; i

  TempTask = Task;

  } else {

  for(int i=0; i

  if(Worker==0 && cost+Cost[k] < MinCost) { // 为提高效率而进行剪枝

  Worker = 1; Task[k] = i;

  Assign(k+1, cost+Cost[k]);

  Worker = 0; Task[k] = 0;

  }

  }

  }

  }

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

  Assign(0, 0);

  printf("最佳方案总费用=%d\n", MinCost);

  for(int i=0; i

  printf("\t任务%d由工人%d来做:%d\n", i, TempTask, Cost[TempTask]);

  }

  13、八皇后问题,输出了所有情况,不过有些结果只是旋转了90度而已。(回溯算法的典型例题,是数据结构书上算法的具体实现,大家都亲自动手写过这个程序吗?)

  #define N 8

  int Board[N][N];

  int Valid(int i, int j) { // 判断下棋位置是否有效

  int k = 1;

  for(k=1; i>=k && j>=k;k++)

  if(Board[i-k][j-k]) return 0;

  for(k=1; i>=k;k++)

  if(Board[i-k][j]) return 0;

  for(k=1; i>=k && j+k

  if(Board[i-k][j+k]) return 0;

  return 1;

  }

  void Trial(int i, int n) { // 寻找合适下棋位置

  if(i == n) {

  for(int k=0; k

  for(int m=0; m

  printf("%d ", Board[k][m]);

  printf("\n");

  }

  printf("\n");

  } else {

  for(int j=0; j

  Board[j] = 1;

  if(Valid(i,j))

  Trial(i+1, n);

  Board[j] = 0;

  }

  }

  }

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

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


Tag:笔试题目驾照笔试题目,腾讯笔试题目求职指南 - 求职笔试面试 - 笔试题目
联系我们 | 网站地图 | 范文大全 | 管理知识 | 教学教育 | 作文大全 | 语句好词
Copyright http://www.77xue.com--(七七学习网) All Right Reserved.
1 2 3 4 5 6 7 8 9 10