`

告诉你什么是优雅的代码(10)----鬼斧神工

    博客分类:
  • Java
阅读更多
最近逛javaeye得出的体会就是现在的弟弟妹妹确实都很强。动不动都是看过大型框架源码,搞虚拟机,研究字节码。言必海量数据海量用户,高并发等话题。而我一头老鸟还在写些比肩hello world的小代码,真是深感汗颜。所以写完这篇这个系列就结束了。

正如这个系列的其他帖子一样,这篇东西也没有什么你可以获得快感的元素。看见标题的鬼斧神工了吗?不要误会,不是在形容我接下来要写的代码。上面已经说了,现在的弟弟妹妹很强。未来是你们的,也是我们的,但终究是你们的。所以当我浏览这个帖子http://www.iteye.com/topic/800013,看见那段惊为天人的代码时,我便对上面的话深信不疑。

闲话休提,来看下这段鬼斧神工的代码:

public static void main(String[] args)
{
for(int i = 1; i < 10;i++) //1
{
if(i%1!=0)
{
continue;
}else
{
for(int j = 1; j < 10; j++)//2
{
if(i==j)
{
continue;
}else
{
if((i*10 + j)%2 == 0)
{
for(int k = 1; k < 10 ; k++)//3
{
if((k==i)||(k==j))
{
continue;
}else
{
if((i*100 + j*10 + k)%3==0)
{
for(int l = 1 ;l <10;l++)//4
{
if((l==i)||(l==j)||(l==k))
{
continue;
}else
{
if((i*1000+j*100+k*10+l)%4==0)
{
for(int m = 1;m <10;m++)//5
{
if((m==i)||(m==j)||(m==k)||(m==l))
{
continue;
}else
{
if((i*10000+j*1000+k*100+l*10+m)%5==0)
{
for(int n=1;n<10;n++)//6
{
if((n==i)||(n==j)||(n==k)||(n==l)||(n==m))
{
continue;
}else
{
if((i*100000+j*10000+k*1000+l*100+m*10+n)%6==0)
{
for(int x = 1;x < 10; x++)//7
{
if((x==i)||(x==j)||(x==k)||(x==l)||(x==m)||(x==n))
{
continue;
}else
{
if((i*1000000+j*100000+k*10000+l*1000+m*100+10*n+x)%7==0)
{
for(int y =0; y < 10;y++)//8
{
if((y==i)||(y==j)||(y==k)||(y==l)||(y==m)||(y==n)||(y==x))
{
continue;
}else
{
if((i*10000000+j*1000000+k*100000+l*10000+m*1000+n*100+10*x+y)%8==0)
{
for(int z = 1; z < 10; z++)
{
if((z==i)||(z==j)||(z==k)||(z==l)||(z==m)||(z==n)||(z==x)||(z==y))
{
continue;
}else
{
if((i*100000000+j*10000000+k*1000000+l*100000+m*10000+n*1000+x*100+10*y+z)%9==0)
{
System.out.println(i+""+j+""+k+""+l+""+m+""+n+""+x+""+y+""+z);
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}






高效与精彩不用多表。


在此也贴上我一直所标榜为优雅的史上被隐藏最多的代码,以结束这个系列。


import java.util.Arrays;

public class MagicDiv {
	private int[] used = new int[10];
	public void find(){
		Arrays.fill(used,0);
		used[5] = 1;
		dfs(0,1);
	}	
	public void dfs(int pre, int pos){
		if(pos > 9){
			System.out.println(pre);
			return;
		}
		int tmp = pre * 10;
		if(pos == 5){	
			dfs(tmp + 5 , pos + 1);
		}else{
			
		for (int i = 1; i < 10; i++) {
			if(used[i] == 0	){
				int cur = tmp + i;
				if(cur % pos == 0){
					used[i] = 1;
					dfs(cur,pos + 1);
					used[i] = 0;
				}
			}
		
		}
		
		}
	}
	public static void main(String[] args) {
		new MagicDiv().find();
	}

}


8
4
分享到:
评论
9 楼 SKY__LAND 2013-10-02  
我想问一下,你是怎么处理9个数字不重复的?
8 楼 Ulysses 2011-11-25  
漂亮的回溯
7 楼 lzxz1234 2010-12-31  
递归很传神,膜拜
6 楼 lzxz1234 2010-12-31  
看到lz头像,我的感觉是披着郭嘉羊皮的杨过抢占了诸葛亮的地盘住在了南阳草庐里
5 楼 zzy9zzy 2010-11-25  
递归算法写的好啊!现在新一代的宇宙级程序员已经对这种小东西看不上眼了,殊不知写代码就这些算法是最吃功夫的,我估计一部分人连这十几行代码的递归调用结构都没弄明白呢。

你写的文章没有虚的东西,全是实实在在的真功夫,佩服!

继续写吧,写几段关于Google代码大赛的竞赛题代码,估计投隐藏帖的就少多了
4 楼 yangguo 2010-11-05  
javaliver 写道
为什么看到你的头像  就想起笑傲江湖华山派掌门,号称君子剑(岳不群)。  lz别在意  


如果我对所有无知与愚昧都要在意,我都吐血死了。
3 楼 黑暗浪子 2010-11-04  
看到第一段代码,感觉和当年水木清华版的那群大学生小朋友写的C代码有的一拼
2 楼 javaliver 2010-11-03  
为什么看到你的头像  就想起笑傲江湖华山派掌门,号称君子剑(岳不群)。  lz别在意  
1 楼 Louky_luan 2010-11-03  
小弟佩服,您说的话深有感触,您写代码更让我眼前发亮

相关推荐

Global site tag (gtag.js) - Google Analytics