有这个一个9位数 它由123456789组成,每个数字出现仅且出现一次,数字的前一位能被1整除,前2位能被2整除。。。。前9位能被9整除,求这个数字。

package algorithm;

import java.util.HashSet;
import java.util.Set;

/**
* 有这个一个9位数 它由123456789组成,每个数字出现仅且出现一次,数字的前一位能被1整除,前2位能被2整除。。。。前9位能被9整除,求这个数字。
* 小技巧 123456789能被9整除 每次加9可以减少循环次数
*/
public class Algorithm1Test {
public static void main(String[] args)
{
Set set=new HashSet();
for(long i=123456789;i<=987654321;i=i+9)
{
if(i/10%8 ==0 && i/100%7 ==0 && i/1000%6 ==0 && i/10000%5 ==0 && i/100000%4 ==0 && i/1000000%3 ==0 && i/10000000%2 ==0 && i/100000000 !=0)
{
set.clear();
for(String temp: String.valueOf(i).split(""))
{
if(!temp.equals("0"))set.add(temp);
}
if(set.size()==9) System.out.println(i);
}
}
}
}
posted @ 2019-09-12 13:50  wygflying  阅读(599)  评论(0编辑  收藏  举报