关于淘汰85%面试者的百度开发者面试题
2014-05-16 21:47
267 查看
题目描述:
依序遍历0到100闭区间内所有的正整数,如果该数字能被3整除,则输出该数字及‘*’标记;如果该数字能被5整除,则输出该数字及‘#’标记;如果该数字既能被3整除又能被5整除,则输出该数字及‘*#’标记。
忘了第一次从哪看见的了,刚才在 王奎MarkSaas博客里看见有人在讨论这个面试题。见到不少好的解题方法,记录下来。
我的解法:
#include <iostream> using namespace std; int main() { for (int i = 0; i <= 100; i++) { if ((i % 3 == 0) ^ (i % 5 == 0)) { if (i % 3 == 0) cout << i << '*'<<endl; else cout << i << '#'<<endl; } else if ((i % 3 == 0) && (i % 5 == 0)) cout << i << "*#"<<endl; } return 0; }别人的:
/* @author marksaas @blog www.marksaas.com @time 2014-4-24 timu依序遍历0到100闭区间内所有的正整数,如果该数字能被3整除,则输出该数字及‘*’标记; 如果该数字能被5整除,则输出该数字及‘#’标记;如果该数字既能被3整除又能被5整除,则输出该数字及‘*#’标记。 */ public class Baidu{ public static void main(String[] args){ for(int i=1;i<100;i++){ if(i%3==0&&i%5==0){ System.out.println(i+"*#"); }else if(i%3==0){ System.out.println(i+"*"); }else if(i%5==0){ System.out.println(i+"#"); } } } }
/* @author marksaas @blog www.marksaas.com @time 2014-4-24 timu依序遍历0到100闭区间内所有的正整数,如果该数字能被3整除,则输出该数字及‘*’标记; 如果该数字能被5整除,则输出该数字及‘#’标记;如果该数字既能被3整除又能被5整除,则输出该数字及‘*#’标记。 */ public class Baidu{ public static void Print(){ String result=""; for(int i=1;i<=100;i++){ if(i%3==0){ result=i+"*"; if(i%5==0){ result+="#"; } System.out.println(result); continue; }else if(i%5==0){ result=i+"#"; System.out.println(result); } } } public static void main(String[] args){ Print(); } }表示不明觉厉
//个人主页:http://my.csdn.net/u012999424 #include<iostream> #include<string> using namespace std; int main() { int add[7] = {3,2,1,3,1,2,3}; char c[6] = {'*','#','*','*','#','*'}; string all = "*#"; int i = 0; int index = 0; while((i += add[index]) <= 100) { if(index != 6) { cout << i << c[index] << endl; index++; } else { cout << i << all << endl; index = 0; } } return 0; }
经过优化的代码,
//http://blog.csdn.net/justmeing/article/details/24386071 //商向下取整 int threeIndex = (int) Math.floor(100/3); int fiveIndex = (int) Math.floor(100/5); int bothIndex = (int) Math.floor(100/15); for(int i=1;i<=threeIndex;i++){ if(i%5 != 0) System.out.println(3*i+"*"); if(i<=fiveIndex && i%3 != 0) System.out.println(5*i+"#"); if(i<=bothIndex) System.out.println(15*i+"*#"); }
相关文章推荐
- 关于淘汰85%面试者的百度开发者面试题的看法
- 2014-05-08一道淘汰85%面试者的百度开发者面试题
- 一道淘汰85%面试者的百度开发者面试题——解题、参考答案和优化思路
- 一道淘汰85%面试者的百度开发者面试题
- 一道淘汰85%面试者的百度开发者面试题
- 面试经之一道淘汰85%面试者的百度开发者面试题
- 一道淘汰85%面试者的百度开发者面试题
- 编程挑战-一道淘汰85%面试者的百度开发者面试题
- 一道淘汰85%面试者的百度开发者面试题?
- 一道淘汰85%面试者的百度开发者面试题(更新)
- 一道淘汰85%面试者的百度开发者面试题-我就是想知道正确的答案.
- 一道淘汰85%面试者的百度开发者面试题参考答案
- 一道淘汰85%面试者的百度开发者面试题
- 一道淘汰85%面试者的百度开发者面试题
- 一道淘汰85%面试者的百度开发者面试题——解题、参考答案和优化思路
- 一道淘汰85%面试者的百度开发者面试题
- 一道淘汰85%面试者的百度开发者面试题参考答案
- 一道淘汰85%面试者的百度开发者面试题
- 一道淘汰85%面试者的百度开发者面试题
- 一道淘汰85%面试者的百度开发者面试题