对任一个正整数n,求一个最小的正整数m,使得n*m结果为0和1组成

请看这篇blog:http://blog.csdn.net/jcwKyl/article/details/3859155

自己的改写的java代码:

public class MixNum {

	public static void main(String[] args) {
		InputStream is = System.in;
		BufferedReader br = new BufferedReader(new InputStreamReader(
				is));
		byte [] bytes = new byte[1024];
		int len = 0;
		while(true){
			try {
				System.out.println("请输入数字n:");
				String str = br.readLine();
				long n = Long.parseLong(str);
				if(n<1){
					System.out.println("数字n不能小于1,请重新输入");
					continue;
				}
				long m;
				for(m=1;;m++){
					if(HasOnlyOneAndZero(n*m)) {  
						System.out.println("n="+n+" "+"m="+m+" "+"n*m="+n*m);
						break;
					}
				}
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}

	private static boolean HasOnlyOneAndZero(long i) {
		while(i>0){
			if(i % 10 >= 2) return false;  
	        i /= 10;  

		}
		return true;
	}
}

猜你喜欢

转载自xyzxiaoxi.iteye.com/blog/1257560