阅读 8441 次
发表时间: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,这是我得到的结果,我的方法很笨, 这也是我第一次回答问题,请大家指教




牛.....我服了你了。。
Global site tag (gtag.js) - Google Analytics