首先解釋一下吸血鬼數字:吸血鬼數字是指位數為偶數的數字,可由一對數字相乘而得到,這對數字各包含乘積的一半位數的數字,以兩個0結尾的數字是不允許的。
四位數吸血鬼數字示例:1260=21*60,1827=21*87,2187=27*81……
先列出結果:一共7個:1260=21*60,1395=15*93,1435=41*35,1530=51*30,1827=87*21,2187=27*81,6880=86*80
其它優秀方法:
解題目標:
考慮可復用性,單獨寫乙個函式用來判斷是不是吸血鬼數。
如何把整數給分隔開,編寫了toseparateint()方法,可以把任意大小的整數分隔成陣列的形式。
解題過程:
建立乙個vampire類 用來儲存 吸血鬼數的相關資訊
編寫 isvampire(int i)函式,返回vampire型別資料,當vampire.isv為true時代表當前數是吸血鬼數,把大問題分隔成多個小問題逐一解決
因為有了isvampire()方法,在main()方法只把4位數遍歷一遍就可以了
public class f
} }public static vampire isvampire(int i)
int a = toseparateint(i);
// vampire數第一步是將i 的個位,十位分開
for (int n1 = 0; n1 < 4; n1++)
for (int n4 = 0; n4 < 4; n4++)
else if(((a[n1] * 10 + a[n2]) * (a[n3] * 10 + a[n4])) == i) }}
}} return v;
} public static int toseparateint(int i)
}class vampire
}
由於才疏學淺,在資料結構方面寫的一塌糊塗,為了突出思想,並沒有修改 多層迴圈 部分,可以參考,上面有很好的方法。
如有錯誤請指正。謝謝
Java學習筆記 吸血鬼數
吸血鬼數字,是指數字為偶數的數字,可以由一對數字相乘而得到,而這對數字各包含 乘積的一半位數的數字,其中從最初的數字中選取的數字可以任意排序。以兩個0結尾的數字是不允許的,例如,下列數字都是 吸血鬼 數字 1260 21 60 1827 21 87 2187 27 81static void vam...
吸血鬼數字(java)
吸血鬼數字是指位數為偶數的數字,可以由一堆數字相乘而得到,而這對數字各包含乘積的一半位數的數字,其中從最初的數字中選取的數字可以任意排列。以兩個0結尾的數字是不允許的 例如,下列數字都是吸血鬼數字 1260 21 60 1827 21 87 2187 27 81 寫乙個程式,找出所有4位的吸血鬼數字...
吸血鬼數字(JAVA)
吸血鬼數字是指位數為偶數的數字,可以由一對數字相乘而得到,而這對數字各包含乘積的一半位數的數字,其中從最初的數字中選取的數字可以任意排序。以兩個0結尾的數字是不允許的,例如,下列數字都是 吸血鬼 數字 1260 21 60,1827 21 87.寫乙個程式,找出4為數的所有吸血鬼數字。public ...