昨天去笔百度了,系统部核心技术研发工程师/云计算系统研发工程师,第一道题目是这样的:
求A^B的最后三位数表示的整数。(1<=A,B<=10000)
当时一看是数字题目啊,估计得花不少时间,于是从第二题向后做,偏偏最后一题系统设计题目花了较长的时间(大概有半个小时吧),做完最后就10分钟了,感觉第一题来不及做了,于是交卷。。。
中午吃完饭回到实验室,想了下那道题,突然一拍脑门,我每次相乘的时候只取后三位不就可以了嘛。。。比如1234^1000,1234*1234和234*234后三位的数字时一样的啊,相乘的时候只要考虑后三位就可以了。
int test(int A,int B)
{
int i,ret,tmp;
ret=tmp=A%1000;
for(i=1;i
{
ret *= (ret*tmp)%1000;
}
return ret;
}
就这样了,悲剧啊,估计考试的时候也有点紧张。。。
阅读(3134) | 评论(1) | 转发(0) |