寻找这样一个九位数:包括数字1到9,前一位能被1整除,前两位能被2整除,依次类推,一直到前九位能被9整除,这个数是唯一的
- class Demo
- {
- public static void main(String[] args)
- {
- new No(0).method();
- }
- }
- class No
- {
- boolean[] a = new boolean[9];
- int m=0;
- int n=0;
- int hehe=0;
-
- public No(int hehe)
- {
- this.hehe=hehe;
- }
- public void method()
- {
- for(int i=0;i<9;i++)
- {
- a[i]=true;
- }
-
- m=hehe;
- while(m!=0)
- {
- n=m%10;
- m=m/10;
- a[n-1]=false;
- }
- for(int i=0;i<9;i++)
- {
- if(a[i]==false)
- continue;
- m=hehe*10+i+1;
- int u=num(m);
- if(m%u==0 && u!=9)
- {
- //System.out.println("进入下一分支:"+m);
- new No(m).method();
- }
-
- else if(m%u==0 && u==9)
- {
- System.out.println("找到一个数!!!!!!!!!!!!!!!!!!!!!!!!!!:"+m+"噢哈哈哈哈");
- }
- else
- {
- //System.out.println("丢弃这一分支:"+m);
- }
- }
- }
- public static int num(int k)
- {
- int count=0;
- while(k!=0)
- {
- k=k/10;
- count++;
- }
- return count;
- }
- }
复制代码
不知道有没有更简洁的方法 |
|