本帖最后由 王洪宇 于 2013-4-14 10:41 编辑
- //写一个程序 , 找出四位数中的所有吸血鬼数字 .
- public class VampireNumbers {
- //四个方法,分别提取一个四位数的个、十、百、千位
- static int a(int i) {
- return i/1000;
- }
- static int b(int i) {
- return (i%1000)/100;
- }
- static int c(int i) {
- return ((i%1000)%100)/10;
- }
- static int d(int i) {
- return ((i%1000)%100)%10;
- }
- //combine 将两个数字组合成两位数
- static int com(int i, int j) {
- return (i * 10) + j;
- }
- //判断是否符合i = m*n
- static void test (int i, int m, int n) {
- if(m * n == i) System.out.println(i + " = " + m + " * " + n);
- }
- public static void main(String[] args) {
- for(int i = 1001; i < 9999; i++) {
- //分别列出四个数字能够产生的排列组合方式,进行判断是否符合i = m*n;
- test(i, com(a(i), b(i)), com(c(i), d(i)));
- test(i, com(a(i), b(i)), com(d(i), c(i)));
- test(i, com(a(i), c(i)), com(b(i), d(i)));
- test(i, com(a(i), c(i)), com(d(i), b(i)));
- test(i, com(a(i), d(i)), com(b(i), c(i)));
- test(i, com(a(i), d(i)), com(c(i), b(i)));
- test(i, com(b(i), a(i)), com(c(i), d(i)));
- test(i, com(b(i), a(i)), com(d(i), c(i)));
- test(i, com(b(i), c(i)), com(d(i), a(i)));
- test(i, com(b(i), d(i)), com(c(i), a(i)));
- test(i, com(c(i), a(i)), com(d(i), b(i)));
- test(i, com(c(i), b(i)), com(d(i), a(i)));
- }
- }
- }
复制代码 看看这个吧,是否会对你有帮助。 |