前边说我说道这道题不用什么高大的算法即可,如今感觉也许真的不用什么高大的算法,可是各种思路来解决问题还是要有的。。
昨天在我的博客上看到有朋友写了第二种方法,感觉思路挺不错的,就拿过了分享一些,原评论请看上面那个连接,因为不能附件连接:请參看曾经写的文章:http://blog.csdn.net/mark_wk/article/details/24398321很多其它经彩请看我博客:www.marksaas.com
先说一下他的思路吧。主要是用String来控制输出结果,就是先指定一个空串来作为输出结果,假设i能被3整除就吧*附加到结果上来,假设能被5整除就把再把#附加到结果上来,也许你有些晕。还是直接看代码慢慢理解比較好。。
好了,废话不多说了上代码:
public class Baidu3{ public static void main(String[] args){ String result=""; for(int i=1;i<=100;i++){ result=i%3==0?"*":""; result+=i%5==0?"#":""; if(!"".equals(result)){ System.out.println(i+result); } } } }
也能够把文中的String用StringBuffer或者用StringBuffer来取代,请看:StringBuilder和StringBuffer解析(百度面试题优化须要用到的)。因为有不少同学对于优化问题还有疑问。我已经把源码贴出了,供大家參考。请參看百度开发人员面试题(优化),感觉这道题的第三种方法挺不错的,可是三目运算符在运算的时候也会进行推断运算,感觉第一种方法简单明了。执行效率也几乎相同。果有更好的思路。欢迎探讨。
。