吸血鬼數字測試

          幾天偶然翻看了下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
          主站蜘蛛池模板: 五原县| 西华县| 榆社县| 阿克陶县| 阆中市| 探索| 武汉市| 湾仔区| 田林县| 邵阳市| 龙川县| 衡东县| 大丰市| 家居| 林周县| 伊川县| 永宁县| 电白县| 绥宁县| 武安市| 叶城县| 东乡县| 琼中| 凌海市| 云霄县| 张掖市| 育儿| 克山县| 义马市| 上思县| 拉孜县| 鄂托克旗| 丹巴县| 自贡市| 清镇市| 黄石市| 富锦市| 大城县| 古浪县| 登封市| 饶河县|