代码:

  1. //转载请标明出处,原文地址:http://blog.csdn.net/hackbuteer1/article/details/8017703
  2. bool IsPrime(int n)
  3. {
  4. int i;
  5. if(n < 2)
  6. return false;
  7. else if(2 == n)
  8. return true;
  9. if((n&1) == 0)    //n%2 == 0
  10. return false;
  11. for(i = 3 ; i*i <= n ; i += 2)     //只考虑奇数
  12. {
  13. if(n % i == 0)
  14. return false;
  15. }
  16. return true;
  17. }
  18. /*
  19. 考虑到所有大于4的质数,被6除的余数只能是1或者5
  20. 比如接下来的5,7,11,13,17,19都满足
  21. 所以,我们可以特殊化先判断2和3
  22. 但后面的问题就出现了,因为并非简单的递增,从5开始是+2,+4,+2,+4,....这样递增的
  23. 这样的话,循环应该怎么写呢?
  24. 首先,我们定义一个步长变量step,循环大概是这样 for (i = 5; i <= s; i += step)
  25. 那么,就是每次循环,让step从2变4,或者从4变2
  26. 于是,可以这么写:
  27. */
  28. bool IsPrime2(int n)
  29. {
  30. int i, step = 4;
  31. if(n < 2)
  32. return false;
  33. else if(2 == n || 3 == n)
  34. return true;
  35. if((n&1) == 0)    //n%2 == 0
  36. return false;
  37. if(n%3 == 0)      //n%3 == 0
  38. return false;
  39. for(i = 5 ; i*i <= n ; i += step)
  40. {
  41. if(n % i == 0)
  42. return false;
  43. step ^= 6;
  44. }
  45. return true;
  46. }
  47. void print_prime(int n)
  48. {
  49. int i , num = 0;
  50. for(i = 0 ; ; ++i)
  51. {
  52. if(IsPrime2(i))
  53. {
  54. printf("%d  " , i);
  55. ++num;
  56. if(num == n)
  57. break;
  58. }
  59. }
  60. printf("\n");
  61. }



代码:

  1. //转载请标明出处,原文地址:http://blog.csdn.net/hackbuteer1/article/details/8017703
  2. void myswap(int a , int b , int* array)
  3. {
  4. int temp = array[a];
  5. array[a] = array[b];
  6. array[b] = temp;
  7. }
  8. //利用0和其它数交换位置进行排序
  9. void swap_sort(int* array , int len)
  10. {
  11. int i , j;
  12. for(i = 0 ; i < len ; ++i)          //因为只能交换0和其他数,所以先把0找出来
  13. {
  14. if(0 == array[i])
  15. {
  16. if(i)   //如果元素0不再数组的第一个位置
  17. myswap(0 , i , array);
  18. break;
  19. }
  20. }
  21. for(i = 1 ; i < len ; ++i)     //因为是0至N-1的数,所以N就放在第N的位置处
  22. {
  23. if(i != array[i])    //这个很重要,如果i刚好在i处,就不用交换了,否则会出错
  24. {
  25. for(j = i + 1 ; j < len ; ++j)
  26. {
  27. if(i == array[j])
  28. {
  29. myswap(0 , j , array);   //把0换到j处,此时j处是0
  30. myswap(j , i , array);   //把j处的0换到i处,此时i处是0
  31. myswap(0 , i , array);   //把i处的0换到0处
  32. }
  33. }//for
  34. }
  35. }//for
  36. }

代码:

  1. //转载请标明出处,原文地址:http://blog.csdn.net/hackbuteer1/article/details/8017703
  2. int mymin(int a , int b , int c)
  3. {
  4. int temp = (a < b ? a : b);
  5. return temp < c ? temp : c;
  6. }
  7. int min_edit_dic(char* source , char* target)
  8. {
  9. int i , j , edit , ans;
  10. int lena , lenb;
  11. lena = strlen(source);
  12. lenb = strlen(target);
  13. int** distance = new int*[lena + 1];
  14. for(i = 0 ; i < lena + 1 ; ++i)
  15. distance[i] = new int[lenb + 1];
  16. distance[0][0] = 0;
  17. for(i = 1 ; i < lena + 1 ; ++i)
  18. distance[i][0] = i;
  19. for(j = 1 ; j < lenb + 1 ; ++j)
  20. distance[0][j] = j;
  21. for(i = 1 ; i < lena + 1 ; ++i)
  22. {
  23. for(j = 1 ; j < lenb + 1 ; ++j)
  24. {
  25. if(source[i - 1] == target[j - 1])
  26. edit = 0;
  27. else
  28. edit = 1;
  29. distance[i][j] = mymin(distance[i - 1][j] + 1 , distance[i][j - 1]  + 1 , distance[i - 1][j - 1] + edit);
  30. //distance[i - 1][j] + 1             插入字符
  31. //distance[i][j - 1]  + 1            删除字符
  32. //distance[i - 1][j - 1] + edit      是否需要替换
  33. }
  34. }
  35. ans = distance[lena][lenb];
  36. for(i = 0 ; i < lena + 1 ; ++i)
  37. delete[] distance[i];
  38. delete[] distance;
  39. return ans;
  40. }

[转]Google2012.9.24校园招聘会笔试题的更多相关文章

  1. google2013校园招聘笔试题(全国)

    google2013校园招聘笔试题 1. 单项选择题1.1如果把传输速率定义为单位时间内传送的信息量(以字节计算)多少.关于一下几种典型的数据传输速率:1.使用USB2.0闪存盘,往USB闪存盘上拷贝 ...

  2. Microsoft 2013校园招聘笔试题及解答

    Microsoft 2013校园招聘笔试题及解答 题目是自己做的,求讨论.吐槽.拍砖 1.      Which of the following callingconvension(s) suppo ...

  3. 2014 WAP校园招聘笔试题

    2014 WAP校园招聘笔试题 Problem's Link:   http://www.doc88.com/p-6751117015483.html WAP公司笔试题 We are planning ...

  4. Microsoft2013校园招聘笔试题

    Microsoft2013校园招聘笔试题 继续求拍砖!!!! 1. You are managing the database of a book publichser, you currently ...

  5. C# - 2017微软校园招聘笔试题 之 MS Recognition[待解决]

    MS Recognition 在线提交: hihoCoder 1402 http://hihocoder.com/problemset/problem/1402 类似: OpenJudge - I:P ...

  6. 2013Hulu校园招聘笔试题

    填空题:1.中序遍历二叉树,结果为ABCDEFGH,后序遍历结果为ABEDCHGF,先序遍历结果为?  FCBADEGH  如下图所示: 2.对字符串HELL0_HULU中的字符进行二进制编码,使得字 ...

  7. 京东2017校园招聘笔试题 【第K个幸运数】

    题目描述 4和7是两个幸运数字,我们定义,十进制表示中,每一位只有4和7两个数的正整数都是幸运数字. 前几个幸运数字为:4,7,44,47,74,77,444,447... 现在输入一个数字K,输出第 ...

  8. 九度OJ 1531 货币面值(网易游戏2013年校园招聘笔试题) -- 动态规划

    题目地址:http://ac.jobdu.com/problem.php?pid=1531 题目描述: 小虎是游戏中的一个国王,在他管理的国家中发行了很多不同面额的纸币,用这些纸币进行任意的组合可以在 ...

  9. PPS2013校园招聘笔试题

    转载请标明出处,原文地址:http://blog.csdn.net/hackbuteer1/article/details/11473405 一.简答题 (1)一位老师有2个推理能力很强的学生,他告诉 ...

随机推荐

  1. <php>统计目录数和文件数

    $dirn = 0; //目录数 $filen = 0; //文件数 //用来统计一个目录下的文件和目录的个数 function getdirnum($file) { global $dirn; gl ...

  2. Web Service工作原理

    Web Service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的 ...

  3. JMeter录制脚本

    Jmeter 是一个非常流行的性能测试工具,虽然与LoadRunner相比有很多不足,比如:它结果分析能力没有LoadRunner详细:很它的优点也有很多: l 开源,他是一款开源的免费软件,使用它你 ...

  4. CSS Gradient详解

    啥也不说,先看代码: <style> div { width:100px;height:100px;border-radius:50px;/**第一行样式是设置容器的宽高,并且把圆角设置成 ...

  5. 关于asp.net的<%#%>的一些总结

    一.说明 asp特有的控件在前台绑定数据的语法,且必须要调用该控件的DataBind()方法才执行,也可以整个页面数据绑定. 二.注意 1.并不是只有服务器控件才可以使用该语法,当整个页面调用this ...

  6. 页面全屏显示JS代码

    1.直接在页面加载时就全屏. <body onload="window.open(document.location,'big','fullscreen=yes'):window.cl ...

  7. js中的两个数字a,b求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。一共b个数字相加,例如用户输入2,5 s=2+22+222+2222+22222

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  8. 洛谷 P3397 地毯

    P3397 地毯 题目背景 此题约为NOIP提高组Day2T1难度. 题目描述 在n*n的格子上有m个地毯. 给出这些地毯的信息,问每个点被多少个地毯覆盖. 输入输出格式 输入格式: 第一行,两个正整 ...

  9. CODEVS 3139 栈练习3

    3139 栈练习3  时间限制: 2 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题目描述 Description 比起第一题,本题加了另外一个操作,访问栈顶元素(编号3,保 ...

  10. C#设置鼠标在控件上面时,改变光标形状

    //设置鼠标在控件上面时,改变光标形状 private void pictureBox_macroLogo_MouseHover(object sender, System.EventArgs e) ...