程序员人生 网站导航

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

栏目:互联网时间:2014-10-12 17:17:31

今天看到好几个网友发了一道百度面试题,好奇看了下。对于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<<"*#"; } }


------分隔线----------------------------
------分隔线----------------------------

最新技术推荐