java se面试小考题

来源:互联网 发布:java oa项目源码 编辑:程序博客网 时间:2024/06/06 05:08

编写一个程序,可以实现,123456789这九个数字只能出现一次,并且第一位能被一整除第二位能被二整除一直到第九位。

我在看到题目的时候,先想到的是循环输出,用位数编写循环,后来在查阅资料后,我编写的代码如下

public class demo2 {public void run(){for(Integer i = 123456789;i<987654321;i++){String a = i.toString();if(haveSameChar(a)){if(a.indexOf("0")==-1){if(i.parseInt(a.substring(0, 1))%1==0 && i.parseInt(a.substring(0, 2))%2==0 &&i.parseInt(a.substring(0, 3))%3==0 && i.parseInt(a.substring(0, 4))%4==0 && i.parseInt(a.substring(0, 5))%5==0 && i.parseInt(a.substring(0, 6))%6==0 && i.parseInt(a.substring(0, 7))%7==0 && i.parseInt(a.substring(0, 8))%8==0 && i.parseInt(a.substring(0, 9))%9==0){System.out.println(i);}}}}}public boolean haveSameChar(String s){for(int i =0;i<s.length();i++){char ch = s.charAt(i);String s1 = s.substring(i+1);if(s1.indexOf(ch)>=0){return false;}}return true;}public static void main(String[] args) {demo2 d = new demo2();d.run();}}
最后的结果,我上传如下照片