欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-05-17 22:13:42
...
最近逛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();
	}

}