给定正整数N,求最小的正整数M,使N*M十进制表示中只有0和1.扩展问题:
1.对于任意的N,一定存在M,使得N * M的乘积的十进制表示只有0和1吗?
2.怎样找出满足题目要求的N和M,使得N * M < 2^16,且N+M最大?
1.对于任意的N,一定存在M,使得N * M的乘积的十进制表示只有0和1吗?
2.怎样找出满足题目要求的N和M,使得N * M < 2^16,且N+M最大?
解决方案 »
- synchronized的问题
- JavaRMI问题,客户端获取服务器端的对象出现EOFException异常,求解。
- Javascript 語句下載遠端服務器.txt文件
- [请教]关天时间函数输出问题
- 初学提问:如何把一个int字符串转换为String啊?
- 用什么函数取回 canvas 的长和宽?
- 大家好,有谁知道自己做的javabean在TOMCAT怎么配置吗?比如我的虚拟目录是d:\myjsp,并且已配好,可是就是不知道自己做的bean在server.x
- 那里能够下栽到SNMP的包?谢谢,感激中
- 使用javamail时包错!急!!!!
- 在java中如何实现文字动画效果?急急急!
- java的输出问题~请各位高手来99我这个初学者吧~~~
- string转int问题
// 给定正整数N,求最小的正整数M,使N*M十进制表示中只有0和1.
public static int only01(int n) {
int m = 0;
while(!checkOnly01(++m*n)) ;
return m;
}
public static boolean checkOnly01(int i) {
while(i > 0) {
if(i%10 >= 2)
return false;
i /= 10;
}
return true;
}
public static int only01(int n) {
int[] arr = {1};
int[] tmp;
while(true) {
tmp = new int[arr.length*2];
for(int i=0; i<arr.length; i++) {
System.out.println(arr[i]);
if(arr[i] % n == 0)
return arr[i]/n;
tmp[i*2] = arr[i]*10;
tmp[i*2+1] = tmp[i*2] + 1;
}
arr = tmp;
}
}