发表时间:2010-11-01
1-9九个数字组成一个九位数,数字没有重复。如果从左边起取出1个数字,需要能被1整除,取出两个数字组成的数能被2整除,取出三个数字组成的数能被3整除,依次类推。。。每次取数都是从左边取。问,这个数是什么?给出求解此数的算法。 |
|
发表时间:2010-11-01
x/10次方(10-i) x%i==0 |
|
发表时间:2010-11-01
我的一点小小想法:
1 求出9个数字组成的不重复的九位数的合集。 2 从合集里遍历,找出符合条件的值即可 意见不是很成熟,请见谅!代码我正在考虑。 |
|
发表时间:2010-11-02
找出必要条件进行剪支
首先第五位肯定是5 第二、四、六、八位是2、4、6、8这几个数字的排列组合 第一位和第九位可以是任何数字 然后抓住被7整除和前三个数字和前六个数字都能被三整除特性开始枚举吧 |
|
发表时间:2010-11-02
这几位九位数怎样排序都能被就整出
|
|
发表时间:2010-11-03
设数组a满足条件,则肯定满足以下条件
1.a[1]%2==0 2.(a[0]+a[1]+a[2])%3==0 3.(a[2]*10+a[3])%4==0 &&a[3]%2==0 4.a[4]==5 5.(a[3]+a[4]+a[5])%3==0&&a[5]%2==0 6.(a[5]*100+a[6]*10+a[7])%8==0&&(a[6]*10+a[7])%4==0 &&a[7]%2==0 |
|
发表时间:2010-11-03
根据楼主需求写了段代码 大家来给优化下 挑挑毛病
改好了 我也只得出一个数字 381654729 package test.test; public class testNum { public static int[][] num={{1,0},{2,0},{3,0},{4,0},{5,0},{6,0},{7,0},{8,0},{9,0}}; public static String str = "" ; public void compositionNum(String cNum,long divisor){ String history = "" ; for(int i = 0 ;i<num.length;i++){ if(num[i][1] == 1){ history += ","+ i ; } } String old = null; if(divisor < 10){ for(int i=0;i< 9 ; i++){ old = cNum ; if(num[i][1] == 0){ old += String.valueOf(num[i][0]); long c = Long.valueOf(old.trim()); if(c%divisor == 0){ num[i][1] =1 ; if(divisor == 9) System.out.println(c+"------"+divisor); compositionNum(old,divisor+1); init(); String h[] = history.split(",") ; for(String h1:h){ if(!"".equals(h1)) num[Integer.valueOf(h1)][1]=1; } } } } } } public void init(){ //System.out.println("初始化数组。。。。"); for(int i = 0 ;i<9;i++) num[i][1] = 0; } public static void main(String arg[]){ new testNum().compositionNum("",1); } } |
|
发表时间:2010-11-03
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); } } } } } } } } } } } } } } } } } } } } } } } } } } } |
|
发表时间:2010-11-03
stone_java 写道 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); } } } } } } } } } } } } } } } } } } } } } } } } } } } 381654729,这是我得到的结果,我的方法很笨, 这也是我第一次回答问题,请大家指教 |
|
发表时间:2010-11-03
stone_java 写道 stone_java 写道 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); } } } } } } } } } } } } } } } } } } } } } } } } } } } 381654729,这是我得到的结果,我的方法很笨, 这也是我第一次回答问题,请大家指教 牛.....我服了你了。。 |