實驗代碼:
/** 程式的著作權和版本聲明部分* Copyright (c) 2011, 煙台大學電腦學院學生 * All rights reserved.* 檔案名稱: TestNumber.java * 作 者: 張宗佳 * 完成日期: 2012 年 9 月 16 日* 版 本 號: v1.0 * 對任務及求解方法的描述部分* 問題描述:編寫一個Java應用程式,使用者從鍵盤輸入一個1~9999之間的數,程式將判斷這個*數是幾位元,並判斷這個數是否是迴文數。迴文數是指將該數含有的數字逆序排列後得到的數*和原數相同,例如12121、3223都迴文數。代碼附後。* 演算法說明:* 程式頭部的注釋結束*/import javax.swing.JOptionPane;public class TestNumber{ public static void main(String args[]) { loopNumber(); } static void loopNumber(){ int number=0,d5,d4,d3,d2,d1; String str=JOptionPane.showInputDialog("輸入一個1至99999之間的數");//對話方塊的形式 number=Integer.parseInt(str);//轉換 if(number > 1 && number < 99999) //判斷number在1至99999之間的條件 { d5 = number / 10000;//計算number的最高位(萬位)d5 d4 = number / 1000 % 10;//計算number的千位d4 d3 = number % 1000 / 100; //計算number的百位d3 d2=number % 100 / 10; d1=number % 10; if(d5 > 0) //判斷number是5位元的條件 { System.out.println(number+"是5位元"); if(d5 == d1 && d4 == d2) //判斷number是迴文數的條件 { System.out.println(number+"是迴文數"); } else { System.out.println(number+"不是迴文數"); } } else if(d5 == 0 && d4 > 0) //判斷number是4位元的條件 { System.out.println(number+"是4位元"); if(d1 == d4 && d2 == d3) //判斷number是迴文數的條件碼 { System.out.println(number+"是迴文數"); } else { System.out.println(number+"不是迴文數"); } } else if(d5 == 0 && d4 == 0 && d3 > 0) //判斷number是3位元的條件 { System.out.println(number+"是3位元"); if(d1 == d3) //判斷number是迴文數的條件 { System.out.println(number+"是迴文數"); } else { System.out.println(number+"不是迴文數"); } } else if(d2!=0) { System.out.println(number+"是2位元"); if(d1==d2) { System.out.println(number+"是迴文數"); } else { System.out.println(number+"不是迴文數"); } } else if(d1!=0) { System.out.println(number+"是1位元"); System.out.println(number+"是迴文數"); } } else { System.out.printf("\n%d不在1至99999之間",number); } }}
實驗結果:
1221是4位元
1221是迴文數