笔试1
题目转自:http://kekemiaomiao.iteye.com/blog/11740571.求两个大于2的31次方的整数的乘积,都是32位整数。
http://www.docin.com/p-61022238.html 大数相乘算法
2.一篇文章有n个段落(10<n<1000),,第i个段落有number个单词,找出第m个单词属于第几个段落。求时间复杂度。
for(int i=0;i<n-1;i++){
if(m-number<=number){ //判断想减后的m是否小于下一段的长度
return i+1;
}else {
m=m-number; //依次想减
}
}
if(m<number){
return n-1;
}
3.捕鱼和分鱼。A,B,C,D,E五个人捕鱼,第一天太累了回去就睡觉了,第二天早上A醒来把鱼分成5份然后扔了一条,拿走自己的一份,B同样把鱼分成五份,扔一条多余的,自己拿走自己的那份,然后C,D,E做了同样的事,求鱼共有多条。
参考CSDN http://blog.csdn.net/jetjetlinuxsystem/article/details/6781883
我的思路也是一样的
#include<stdio.h>
void main()
{
int num,i,j,l;
for (num=1;num<30000;num=num+5)
//在1~30000中查找符合条件的整数,这些数必须除5余1,所以是num=num+5//
{
l=0; //l用来记录分桃子的次数//
i=num; //用i代替num,num的值保留备用//
for (j=0;j<5;j++) //一共分配5次//
{
if (i%5==1) //每一次分配必须满足条件:除5余1//
{
i=i-1; //扔掉1个桃子//
i=i/5*4; //平均分成5份,取走1份//
l++; //分1次,计数器+1//
}
if (l==5) //如果能够按照题意进行5次分配,这个数就满足条件,把它输出//
printf("%d\n",num);
}
}
}
页:
[1]