1 public class Xixueguinumber
2 {
3
4 public int cal(int x, int y, int z, int w)
5 {
6 int num = (x * 10 + y) * (z * 10 + w);
7 return num;
8
9 }
10 public static void main(String[] args)
11 {
12 for (int i = 1000; i <= 9999;i++)
13 {
14 int a = (int)(i/1000);
15 int b = (int)((i - a*1000)/100);
16 int c = (int)((i-((int)(i/100))*100)/10);
17 int d = (int)(i - ((int)(i/10))*10);
18 Xixueguinumber Xi = new Xixueguinumber();
19 boolean b1 = Xi.cal(a,b,c,d) == i;
20 boolean b2 = Xi.cal(b,a,c,d) == i;
21 boolean b3 = Xi.cal(a,b,d,c) == i;
22 boolean b4 = Xi.cal(b,a,d,c) == i;
23 boolean b5 = Xi.cal(a,c,b,d) == i;
24 boolean b6 = Xi.cal(a,c,d,b) == i ;
25 boolean b7 = Xi.cal(c,a,b,d) == i;
26 boolean b8 = Xi.cal(c,a,d,b) == i;
27 boolean b9 = Xi.cal(a,d,b,c) == i;
28 boolean b10 = Xi.cal(d,a,b,c) == i;
29 boolean b11 = Xi.cal(a,d,c,b) == i;
30 boolean b12 = Xi.cal(d,a,c,b) == i;
31 Boolean array[] ={b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12};
32 for(int j = 0; j <12; j++)
33 {
34 if(array[j])
35 {
36 System.out.print("吸血鬼数字为:" + i + "=" );
37 switch(j+1)
38 {
39 case 1 : System.out.println(""+ a + b + " * " + c + d);break;
40 case 2 : System.out.println(""+ b + a + " * " + c + d);break;
41 case 3 : System.out.println(""+ a + b + " * " + d + c);break;
42 case 4 : System.out.println(""+ b + a + " * " + d + c);break;
43 case 5 : System.out.println(""+ a + c + " * " + b + d);break;
44 case 6 : System.out.println(""+ a + c + " * " + d + b);break;
45 case 7 : System.out.println(""+ c + a + " * " + b + d);break;
46 case 8 : System.out.println(""+ c + a + " * " + d + b);break;
47 case 9 : System.out.println(""+ a + d + " * " + b + c);break;
48 case 10 : System.out.println(""+ d + a + " * " + b + c);break;
49 case 11 : System.out.println(""+ a + d + " * " + c + b);break;
50 case 12 : System.out.println(""+ d + a + " * " + c + b);break;
51 }
52 }
53
54 }
55
56 }
57 }
58 }
re: 4位的吸血鬼数字计算的JAVA代码 WildTiger 2008-11-29 08:42
class Ghost {
static void prt(int m){
System.out.print(m+" ");
}
static void prtl(){
System.out.println();
}
public static void main(String[] args) {
int digital[] = new int[4];
int one,two,j1,j2,j3,j4;
//从1000到9999,对每一个数都判断是否是吸血鬼数,若是则输出
outer:
for(int i=1000; i<10000; i++){
//对于每一个数,首先提取它的每一个位上的数字。
digital[0]=i/1000;
digital[1]=i%1000/100;
digital[2]=i%100/10;
digital[3]=i%10;
//根据提取出的每一位数字,组合成两个10位数。
for(j1=0; j1<4; j1++){
if(digital[j1]!=0){
one=digital[j1]*10;//如果当前这一位不为0,则将其放到第一个数的最高位。
//提取第一个数的个位数字。
for(j2=0; j2<4; one=digital[j1]*10,j2++){
if(j2!=j1){//第二位数和第一位数不能是同一个
one+=digital[j2];
for(j3=0; j3<4; j3++)
if(j1!=j3 && j2!=j3 &&digital[j3]!=0){//第二个数的首位不能是以前用过的,而且不能为0
two=digital[j3]*10;
for(j4=0; j4<4; two=digital[j3]*10,j4++)
if(j1!=j4 && j2!=j4 && j3!=j4){
two+=digital[j4];
if(two*one==i){
prtl();
prt(i);
prt(one);
prt(two);
continue outer;
}
}
}
}
}
}
}
}
}
}
花了我将近一个上午才弄出来的。
re: Java线程学习(转) 德鲁伊 2008-10-04 14:59
写的不错,支持不肯定的,还需要提供足够的空间给你,让你详细说明每个方法的用法,以及对象的关系!
import java.util.*;
class xixuegui {
public static void main(String args[]) {
for(int x = 11; x < 99; x++) {
for(int y = 11; y < 99; y++) {
int ji = x * y;
if(ji < 1000 && (ji % 100) != 0)
continue;
int a[] = new int[4];
a[0] = x / 10;
a[1] = x % 10;
a[2] = y / 10;
a[3] = y % 10;
/*for(int j = 0; j < a.length - 1; j++) {
for(int i = 0; i < a.length - 1; i++) {
if(a[i] < a[i+1]) {
int c = a[i];
a[i] = a[i+1];
a[i+1] = c;
}
}
}*/
Arrays.sort(a);
int m = a[0] + a[1] * 10 + a[2] * 100 + a[3] * 1000;
//int m = a[0] * 1000 + a[1] * 100 + a[2] * 10 + a[3];
//System.out.print(m + " ");
int b[] = new int[4];
b[0] = ji / 1000;
b[1] = ji / 100 % 10;
b[2] = ji / 10 % 10;
b[3] = ji % 10;
//for(int i = 0; i < b.length; i++) {
// System.out.print(b[i] + " ");
//}
/*for(int j = 0; j < b.length - 1; j++) {
for(int i = 0; i < b.length - 1; i++) {
if(b[i] < b[i+1]) {
int d = b[i];
b[i] = b[i+1];
b[i+1] = d;
}
}
}*/
Arrays.sort(b);
int n = b[0] + b[1] * 10 + b[2] * 100 + b[3] * 1000;
//for(int i = 0; i < b.length; i++) {
// System.out.print(b[i] + " ");
//}
//int n = b[0] * 1000 + b[1] * 100 + b[2] * 10 + b[3];
//System.out.print(n + " ");
if(m == n && x < y) {
System.out.println(x + "*" + y + "=" + x * y);
}
//System.out.println(x + "*" + y + "=" + x * y);
}
}
}
}
re: 4位的吸血鬼数字计算的JAVA代码 lijianfeng 2008-09-24 19:07
以两个0结尾的数是不允许的,所以在for循环中要加上一句
if((i%100)==0) continue;
呵呵.才花几分钟把Ruby给配置好了..
不过还有发现个工具.SciTE..其实也不错.是Ruby中自带的.可是弄Ruby有点小问题一直不能解决..还有就是语法加亮太简漏...一个颜色..郁闷
..支持EditPlus!!!
又一个Editplus的知音,01年玩C#的时候就是用editplus配置的环境,虽然现在玩Java,但还是经常用Editplus,除非写大量code并需要编译的时候才用Jcreator,其他的大IDE靠边站,因为他们会蒙住我们开发的双眼。
re: Java线程学习(转) 你知道 2008-01-02 14:40
呵呵.看这么多字母.都不知道什么意思.不过我支持个先.
re: Ruby这门新兴起的语言--今天下午的收获 wǒ愛伱--咾婆 2007-12-13 10:05
嘿嘿.兄弟..我可没有这想法啊.Java不错啊
现在对Ruby感觉有兴趣..研究下.可没有想法放弃Java.要多学几门语言!
re: Ruby这门新兴起的语言--今天下午的收获 三人行,必有我师焉 2007-12-13 00:15
不知道你为什么会跟着认为Java已经过时,还有这个世界能够没有C和C++吗?难道有了Ruby就要放弃一切吗?有点像刚学程序的我,老想着潮流。“这门语言发展普及速度真是暴强...比Java还强”,据我所知,Ruby出现好几年了吧,Java第四年的时候我就开始使用Jsp了,而且有很成熟的JBuilder 4进行开发,背后也有大公司支持。Ruby现在还只是缺乏开发工具的半吊子,背后的力量也无法撼动Java,主流程序的背后都是大公司的利益在起作用。也许你年过30了Java仍是老大,三年前你这些话就有人说过了,三年后我想还会是现在的局面。
re: ruby code wǒ愛伱--咾婆 2007-12-12 23:52
其实不加括号也没事..只是没加括号不被提倡..ruby老版本支持.估计以后出来的版本就不支持不加括号 了...这里只是警告..可以运行的!
re: Ruby这门新兴起的语言--今天下午的收获 wǒ愛伱--咾婆 2007-12-10 16:39
@Matthew Chen
支持...今天中午才看了一下D语言..嘿嘿..
re: Ruby这门新兴起的语言--今天下午的收获 Matthew Chen 2007-12-10 13:58
ruby了解下,d语言也了解下,关心一下编程未来的走势。
re: Ruby这门新兴起的语言--今天下午的收获 wǒ愛伱--咾婆 2007-12-10 10:43
感觉还不错...有时间会去装着试试...了解了解...
re: Ruby这门新兴起的语言--今天下午的收获 wǒ愛伱--咾婆 2007-12-10 10:40
@xiaoxiao
兄弟.我才去看了看..呵呵.原来自已以前看过关于Groovy的...当时还没怎么注意...呵呵..你发的这..我刚才也正在看..
恩,你想告诉我们什么?不过,欢迎加入ruby的世界
re: JAVA如何调用DOS命令 leson 2007-12-08 12:33
通过实践学到了很多,
Java中调用本地命令,建议学习一下Ant中的exec相关命令。