您的位置:首页 > 职场人生

一道淘汰85%面试者的百度开发者面试题

2014-09-26 21:13 302 查看
今天看到好几个网友发了一道百度面试题,好奇看了下。对于ACMer来说应该算是水题一道吧,也许出于我对算法的敬畏,呵呵

依序遍历0到100闭区间内所有的正整数,如果该数字能被3整除,则输出该数字及‘*’标记;如果该数字能被5整除,则输出该数字及‘#’标记;如果该数字既能被3整除又能被5整除,则输出该数字及‘*#’标记。

于此,个人提点拙劣的想法

第一思路是:

void myAnswer(){
for(int i=0;i<=100;i++){
if(i%3==0){
if(i%5==0)cout<<i<<"*#";
else cout<<i<<"*";
}
else if(i%5==0) cout<<i<<"#";
}
}


后来想了一下,感觉很熟悉

int n=100,m3=1,m5=1,p=1;
while(p<=100){
if(m3*3<m5*5){
m3++;
p=m3*3;
cout<<p<<"*";
}
else if(m3*3>m5*5){
m5++;
p=m5*5;
cout<<p<<"#";
}
else{
m3++;
m5++;
p=m3*3;
cout<<p<<"*#";
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: