本文主要是介绍一道淘汰85%面试者的百度开发者面试题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
今天看到好几个网友发了一道百度面试题,好奇看了下。对于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<<"*#";}
}
这篇关于一道淘汰85%面试者的百度开发者面试题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!