[转]Google2012.9.24校园招聘会笔试题
代码:
- //转载请标明出处,原文地址:http://blog.csdn.net/hackbuteer1/article/details/8017703
- bool IsPrime(int n)
- {
- int i;
- if(n < 2)
- return false;
- else if(2 == n)
- return true;
- if((n&1) == 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((n&1) == 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");
- }
代码:
- //转载请标明出处,原文地址:http://blog.csdn.net/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 ; ++i) //因为是0至N-1的数,所以N就放在第N的位置处
- {
- if(i != array[i]) //这个很重要,如果i刚好在i处,就不用交换了,否则会出错
- {
- for(j = i + 1 ; j < len ; ++j)
- {
- if(i == array[j])
- {
- myswap(0 , j , array); //把0换到j处,此时j处是0
- myswap(j , i , array); //把j处的0换到i处,此时i处是0
- myswap(0 , i , array); //把i处的0换到0处
- }
- }//for
- }
- }//for
- }
代码:
- //转载请标明出处,原文地址:http://blog.csdn.net/hackbuteer1/article/details/8017703
- int mymin(int a , int b , int c)
- {
- int temp = (a < b ? a : b);
- return temp < c ? temp : c;
- }
- int min_edit_dic(char* source , char* target)
- {
- int i , j , edit , ans;
- int lena , lenb;
- lena = strlen(source);
- lenb = strlen(target);
- int** distance = new int*[lena + 1];
- for(i = 0 ; i < lena + 1 ; ++i)
- distance[i] = new int[lenb + 1];
- distance[0][0] = 0;
- for(i = 1 ; i < lena + 1 ; ++i)
- distance[i][0] = i;
- for(j = 1 ; j < lenb + 1 ; ++j)
- distance[0][j] = j;
- for(i = 1 ; i < lena + 1 ; ++i)
- {
- for(j = 1 ; j < lenb + 1 ; ++j)
- {
- if(source[i - 1] == target[j - 1])
- edit = 0;
- else
- edit = 1;
- distance[i][j] = mymin(distance[i - 1][j] + 1 , distance[i][j - 1] + 1 , distance[i - 1][j - 1] + edit);
- //distance[i - 1][j] + 1 插入字符
- //distance[i][j - 1] + 1 删除字符
- //distance[i - 1][j - 1] + edit 是否需要替换
- }
- }
- ans = distance[lena][lenb];
- for(i = 0 ; i < lena + 1 ; ++i)
- delete[] distance[i];
- delete[] distance;
- return ans;
- }
[转]Google2012.9.24校园招聘会笔试题的更多相关文章
- google2013校园招聘笔试题(全国)
google2013校园招聘笔试题 1. 单项选择题1.1如果把传输速率定义为单位时间内传送的信息量(以字节计算)多少.关于一下几种典型的数据传输速率:1.使用USB2.0闪存盘,往USB闪存盘上拷贝 ...
- Microsoft 2013校园招聘笔试题及解答
Microsoft 2013校园招聘笔试题及解答 题目是自己做的,求讨论.吐槽.拍砖 1. Which of the following callingconvension(s) suppo ...
- 2014 WAP校园招聘笔试题
2014 WAP校园招聘笔试题 Problem's Link: http://www.doc88.com/p-6751117015483.html WAP公司笔试题 We are planning ...
- Microsoft2013校园招聘笔试题
Microsoft2013校园招聘笔试题 继续求拍砖!!!! 1. You are managing the database of a book publichser, you currently ...
- C# - 2017微软校园招聘笔试题 之 MS Recognition[待解决]
MS Recognition 在线提交: hihoCoder 1402 http://hihocoder.com/problemset/problem/1402 类似: OpenJudge - I:P ...
- 2013Hulu校园招聘笔试题
填空题:1.中序遍历二叉树,结果为ABCDEFGH,后序遍历结果为ABEDCHGF,先序遍历结果为? FCBADEGH 如下图所示: 2.对字符串HELL0_HULU中的字符进行二进制编码,使得字 ...
- 京东2017校园招聘笔试题 【第K个幸运数】
题目描述 4和7是两个幸运数字,我们定义,十进制表示中,每一位只有4和7两个数的正整数都是幸运数字. 前几个幸运数字为:4,7,44,47,74,77,444,447... 现在输入一个数字K,输出第 ...
- 九度OJ 1531 货币面值(网易游戏2013年校园招聘笔试题) -- 动态规划
题目地址:http://ac.jobdu.com/problem.php?pid=1531 题目描述: 小虎是游戏中的一个国王,在他管理的国家中发行了很多不同面额的纸币,用这些纸币进行任意的组合可以在 ...
- PPS2013校园招聘笔试题
转载请标明出处,原文地址:http://blog.csdn.net/hackbuteer1/article/details/11473405 一.简答题 (1)一位老师有2个推理能力很强的学生,他告诉 ...
随机推荐
- 第36讲 activityForResult
第36讲 activityForResult activityForResult的作用是利用下一个activity给当前的activity传值(前一讲是利用当前activity给下一个activity ...
- Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile 解决办法
Maven install失败 Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (d ...
- PYCHARM配置文件如何导入
请到此下载,如下: http://share.weiyun.com/c00040649e85c4ab1dbc47a0fe9a0a7a 或者:http://files.cnblogs.com/files ...
- windows 删除多层文件夹
眼下目录d:\clu_1下有99个目录,名字为0,1....99,每一个目录下又有25个目录,目录名为0,1,....24,其下其下又有以日期命名的目录(如20140521),最后是zip文件.如一个 ...
- setTimeout()和setInterval()小结
写在前面:在写H5游戏时经常需要使用定时刷新页面实现动画效果,比较常用即setTimeout()以及setInterval() setTimeout 描述 setTimeout(code,millis ...
- Oracle 用户、对象权限、系统权限
--================================ --Oracle 用户.对象权限.系统权限 --================================ 一.用户与模式 ...
- 操作Action
Action就是Controller的一个方法 包含对应请求的最终结果 Action里代码从Model层拿到数据 最后把数据结果Actionresult 返回用户
- Objective-C 数组、可变数组
数组的使用方式 下面是数组:类型NSArray #import <UIKit/UIKit.h> #import "AppDelegate.h" int main(int ...
- AngularJS的$http服务的应用
$http有很多参数和调用方法,本文只记录比较常用的应用及参数. $http 服务:只是简单封装了浏览器原生的XMLHttpRequest对象,接收一个参数,这个参数是一个对象,包含了用来生成HTTP ...
- Linux Shell 中的反引号,单引号,双引号
反引号在 (`) 键盘的Tab键的上方.1键的左方.在Linux中起着命令替换的作用.命令替换是指shell能够将一个命令的标准输出插在一个命令行中任何位置.如下,shell会执行反引号中的date命 ...