最近在CSDN上看到一道題,據說淘汰了85%的面試者(只是據說而已)。心血來潮,隨便寫個算法,該算法很簡單,主要就是考察應聘者是否注重細節。題干如下:
依序遍歷0到100閉區間內所有的正整數,如果該數字能被3整除,則輸出該數字及‘*’標記;如果該數字能被5整除,則輸出該數字及‘#’標記;如果該數字既能被3整除又能被5整除,則輸出該數字及‘*#’標記。
該題主要考察了如下幾點。
1. 正整數。不知這題怎么出了,這是數學的概念。看到有很多答案從0開始掃描,0是整數,非正非負,應該從1、2或3開始掃描都可以。
2. 題目給出了3個條件,應該先考慮條件苛刻的,也就是同時被3和5整除的,然后再考慮被3或被5整除的。
3. 閉區間(這TM的玩文字游戲呢!)。所以不能用for(int i = 0; i < 100;i++)。有很多家伙習慣了,條件都是用“<”。
下面是題目的答案。
public class SF { public static void main(String[] args) { for(int i = 1; i<= 100; i++) { if(i % 3 == 0 && i % 5 ==0) { System.out.print("*#"); } else if(i % 3 == 0) { System.out.print("*"); } else if(i % 5 == 0) { System.out.print("#"); } } } }
最后輸出的結果如下:
*#**#**#*#**#**#*#**#**#*#**#**#*#**#**#*#**#**#*#**#