吸血鬼數字測試

          幾天偶然翻看了下thinking in java。看到吸血鬼數字的題目。
          21*60=1260
          21*87=1827
          找尋4位數的全部吸血鬼數字。
          粗想一樣,這個題目并不復雜,但是如果要做得好的話,并不是那么簡單的。
          就在網上找看有沒有現成的源代碼。
          最好是能最簡單的思想也不復雜的才行。
          于是找到下面的代碼:
           1package BloodSucker;
           2
           3import java.util.Arrays;
           4
           5public class bloodSucker {
           6
           7    public static void main(String[] args) {
           8        for(int i = 10; i <= 99; i++){
           9            for(int j = 10; j<= 99; j++){
          10                int sun = i*j;
          11                if(sun >=1000 && sun <= 9999){
          12                    String [] str = String.valueOf(sun).split("");
          13                    Arrays.sort(str);    //按照字符的升序排列
          14                    String [] str1 =(String.valueOf(i)+String.valueOf(j)).split("");
          15                    Arrays.sort(str1);    //對兩個Arrays進行比較
          16                    if(Arrays.equals(str, str1)){
          17                        System.out.println(i+"*"+j+"="+i*j);
          18                    }

          19                }

          20            }

          21        }

          22
          23    }

          24
          25}

          26

          雖然這并不是自己所作的,
          但是作為學習。
          還是作為筆記貼寫出來吧。
          其中最重要的思想就是利用Arrays進行對數字比較的操作。

          源地址
          http://bbs.chinajavaworld.com/thread.jspa?threadID=744858&tstart=0&messageID=781612

          posted on 2008-10-08 10:03 duduli 閱讀(696) 評論(2)  編輯  收藏 所屬分類: java

          評論

          # re: 吸血鬼數字測試 2008-10-17 19:34 小Xiong

          想問下博主,什么是吸血鬼數字?不能就舉兩個乘法例子啊,
          想了好久都沒想通。  回復  更多評論   

          # re: 吸血鬼數字測試 2008-10-17 19:57 duduli

          @小Xiong
          所謂“吸血鬼數字”就是指位數為偶數的數字(我們算得是4位的),可以由一對數字相乘而得到,而這對數字各包含乘積的一半位數字,其中從偶數位數字中選取的數字可以任意排列。以兩個0截尾的數字是不允許的。例如:1260=21*60 1827=21*87 2187=27*81   回復  更多評論   

          # re: 吸血鬼數字測試 2009-07-15 12:59 funlu

          for(int j = 10; j<= 99; j++)
          應該改成for(int j = i; j<=99; j++)

          不然,你原先的這個代碼會有重復的4位吸血鬼數字輸出。(總共是7個,你輸出的是14個,兩兩重復的)  回復  更多評論   

          <2008年10月>
          2829301234
          567891011
          12131415161718
          19202122232425
          2627282930311
          2345678

          導航

          統計

          公告

          welcome to my place.

          常用鏈接

          留言簿(5)

          我參與的團隊

          隨筆分類

          隨筆檔案

          新聞分類

          石頭JAVA擺地攤兒

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          @duduli
          主站蜘蛛池模板: 同德县| 华容县| 永清县| 定南县| 涡阳县| 威海市| 胶南市| 商河县| 阿鲁科尔沁旗| 江陵县| 宁都县| 襄汾县| 遵义市| 九寨沟县| 巫溪县| 莆田市| 乌鲁木齐县| 张家口市| 大渡口区| 西丰县| 利川市| 宁陕县| 青浦区| 合江县| 阿图什市| 晋城| 菏泽市| 揭西县| 那曲县| 曲水县| 台北县| 探索| 延庆县| 道真| 沽源县| 丹凤县| 麻阳| 龙州县| 吉林市| 礼泉县| 韶关市|