1. 程式人生 > >吸血鬼數解題思路

吸血鬼數解題思路

簡單 解題思路 str equals 打印 並且 amp 所有 吸血鬼

《Java編程思想》中有這樣一道題:

  • 吸血鬼數字是指位數為偶數的數字,可以由一對數字相乘而得到。而這兩位數字必須包含乘積的所有數字(順序可以任意排序),能夠被100整除的數是不允許的:

例如以下都是吸血鬼:

1260=21*60

1827=21*81

2187=27*81

那我們來分析一下題:

給了我們以下幾個有用的條件:

  • 由兩位數相乘而得到並且包含乘積的所有數,說明乘積必須為4位(那範圍必須在1000到9999之間)
  • 不能被100整除

既然是兩位數字相乘而得到那麽範圍就控制在:10~99,必須包含乘積的所有數字那麽就表示乘積和這兩對數一定要相同,這裏我們可以用數組來進行比較。

我們來看一下代碼實現

package
com.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表示第二個兩位數 int
product=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); //打印吸血鬼數 } } } } } }

這個題就做完啦,就是那麽簡單

吸血鬼數解題思路