吸血鬼數解題思路
阿新 • • 發佈:2018-10-24
簡單 解題思路 str equals 打印 並且 amp 所有 吸血鬼
《Java編程思想》中有這樣一道題:
- 吸血鬼數字是指位數為偶數的數字,可以由一對數字相乘而得到。而這兩位數字必須包含乘積的所有數字(順序可以任意排序),能夠被100整除的數是不允許的:
例如以下都是吸血鬼:
1260=21*60
1827=21*81
2187=27*81
那我們來分析一下題:
給了我們以下幾個有用的條件:
- 由兩位數相乘而得到並且包含乘積的所有數,說明乘積必須為4位(那範圍必須在1000到9999之間)
- 不能被100整除
既然是兩位數字相乘而得到那麽範圍就控制在:10~99,必須包含乘積的所有數字那麽就表示乘積和這兩對數一定要相同,這裏我們可以用數組來進行比較。
我們來看一下代碼實現
packagecom.itheima.test; import java.util.Arrays; public class Mian { public static void main(String[] args) { // TODO Auto-generated method stub for (int i = 10; i <100; i++) { //i表示第一個兩位數 for (int j = 10; j < 100; j++) { //j表示第二個兩位數 intproduct=i*j; //獲得乘積 if(product%100!=0&&product>999&&product<10000) { //過濾條件:1不能被100整除2必須是4位數 String[] value1=String.valueOf(product).split(""); //把乘積轉換為字符串,然後在以空格分割為數組 String[] value2=(String.valueOf(i)+String.valueOf(j)).split("");//把兩位數相連接為字符串,然後在以空格分割為數組 Arrays.sort(value1); //排序一下從小到大 Arrays.sort(value2); //排序一下從小到大 if (Arrays.equals(value1, value2)) { //調用Arrays中的靜態方法equals進行比較 System.out.println(i+"*"+j+"="+product); //打印吸血鬼數 } } } } } }
這個題就做完啦,就是那麽簡單
吸血鬼數解題思路