吸血鬼數字測試

          幾天偶然翻看了下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 閱讀(697) 評論(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
          主站蜘蛛池模板: 连江县| 桂平市| 定远县| 夏邑县| 昌平区| 兖州市| 进贤县| 崇信县| 长宁县| 思南县| 泸定县| 商丘市| 乐清市| 岳普湖县| 中卫市| 新宁县| 无锡市| 耿马| 广州市| 股票| 汉寿县| 黄大仙区| 沂水县| 丰宁| 永安市| 新密市| 称多县| 河曲县| 崇仁县| 水城县| 澜沧| 铜山县| 山阴县| 七台河市| 荥经县| 水城县| 洛宁县| 临汾市| 平凉市| 中方县| 新巴尔虎右旗|