就业数据资源平台
当前位置:首页 > 笔试经验
华为笔试经验分享(2)


  篇中提及的问题的解答:


  1、1到100之间的所有素数之和;


  int i = 1;


  int j = 0;


  bool change= 1;


  int sum = 0;


  for (i=1; i<100; i++)


  {


  for (j=2; j


  {


  if(i%j==0)


  {


  change = 0;


  break;


  }


  }


  if(change==1)


  sum +=i;


  change = 1;


  }


  printf("%d\n",sum);


  2、队列的实现;(用数组或者链表,定义好输入和输出即可)


  3、选首领(有一群人围在一圈,从第一个人开始数1、2、3,数到3者退出,用循环链表实现)


  n个人围成一圈,从第一个人开始依次从1到m循环报数,当报到m的时候此人出圈,直到圈 中只剩一人为止.求最后一个人的原始编号。


  int yuesefu(int n,int m)


  {


  int i,r=0;


  for (i=2;i<=n;i++) r=(r+m)%i;


  return r+1;


  }


  4、字符串匹配问题(int countABC(* s) 输入任何一串字符串,计算机其中有连续ABC子字符 串的个数)


  int countABC(* s)


  {


  int i = 0;


  int j = 0;


  int num = 0;


  scanf("%s",s);


  int len = strlen(s);


  for (i=0; i

就业数据资源平台