2012年9月24日Google校园招聘笔试试题(图片版).docVIP

  • 4
  • 0
  • 约4.48千字
  • 约 11页
  • 2021-06-13 发布于北京
  • 举报

2012年9月24日Google校园招聘笔试试题(图片版).doc

2012年9月24日Google校园招聘笔试试题 代码: [cpp] \o view plainview plain \o copycopy \o printprint \o ?? //转载请标明出处,原文地址:/hackbuteer1/article/details/8017703?? bool?IsPrime(int?n)?? {?? ????int?i;?? ????if(n??2)?? ????????return?false;?? ????else?if(2?==?n)?? ????????return?true;?? ????if((n1)?==?0)????//n%2?==?0?? ????????return?false;?? ????for(i?=?3?;?i*i?=?n?;?i?+=?2)?????//只考虑奇数?? ????{?? ????????if(n?%?i?==?0)?? ????????????return?false;?? ????}?? ????return?true;?? }?? ?? /*? 考虑到所有大于4的质数,被6除的余数只能是1或者5? 比如接下来的5,7,11,13,17,19都满足? ? 所以,我们可以特殊化先判断2和3? 但后面的问题就出现了,因为并非简单的递增,从5开始是+2,+4,+2,+4,....这样递增的? 这样的话,循环应该怎么写呢?? ? 首先,我们定义一个步长变量step,循环大概是这样?for?(i?=?5;?i?=?s;?i?+=?step)? 那么,就是每次循环,让step从2变4,或者从4变2? 于是,可以这么写:? */?? bool?IsPrime2(int?n)?? {?? ????int?i,?step?=?4;?? ????if(n??2)?? ????????return?false;?? ????else?if(2?==?n?||?3?==?n)?? ????????return?true;?? ????if((n1)?==?0)????//n%2?==?0?? ????????return?false;?? ????if(n%3?==?0)??????//n%3?==?0?? ????????return?false;?? ????for(i?=?5?;?i*i?=?n?;?i?+=?step)?? ????{?? ????????if(n?%?i?==?0)?? ????????????return?false;?? ????????step?^=?6;?? ????}?? ????return?true;?? }?? ?? void?print_prime(int?n)?? {?? ????int?i?,?num?=?0;?? ?? ????for(i?=?0?;?;?++i)?? ????{?? ????????if(IsPrime2(i))?? ????????{?? ????????????printf(%d???,?i);?? ????????????++num;?? ????????????if(num?==?n)?? ????????????????break;?? ????????}?? ????}?? ????printf(\n);?? }?? 代码: [cpp] \o view plainview plain \o copycopy \o printprint \o ?? //转载请标明出处,原文地址:/hackbuteer1/article/details/8017703?? void?myswap(int?a?,?int?b?,?int*?array)?? {?? ????int?temp?=?array[a];?? ????array[a]?=?array[b];?? ????array[b]?=?temp;?? }?? ?? //利用0和其它数交换位置进行排序?? void?swap_sort(int*?array?,?int?len)?? {?? ????int?i?,?j;?? ????for(i?=?0?;?i??len?;?++i)??????????//因为只能交换0和其他数,所以先把0找出来?? ????{?? ????????if(0?==?array[i])?? ????????{?? ????????????if(i)???//如果元素0不再数组的第一个位置?? ????????????????myswap(0?,?i?,?array);?? ????????????break;?? ????????}?? ????}?? ?? ????for(i?=?1?;?i??len?;

文档评论(0)

1亿VIP精品文档

相关文档