找符合条件的整数

来源:互联网 发布:万能网络搞笑证件软件 编辑:程序博客网 时间:2024/05/16 08:01

 找符合条件的整数

任意给定一个正整数N,求一个最小的正整数MM >1),使得N * M的十进制表示形式里只含有10

最初的解法

看了题目要求之后,我们的第一想法就是从小到大枚举M的取值,然后再计算N * M,最后判断它们的乘积是否只含有10。大体的思路可以用下面的伪代码来实现:

for(M = 2; ; M++)

{

    product = N * M;

    if(HasOnlyOneAndZero(product))

        output N, M, Product, and return;

}

但是问题很快就出现了,什么时候应该终止循环呢?这个循环会终止吗?即使能够终止,也许这个循环仍需要耗费太多的时间,比如N = 99时,M = 1 122 334 455 667 789N * M = 111 111 111 111 111 111

 

相关资源:

《编程之美》编辑部 | 《编程之美》豆瓣 | 《编程之美》互动网购买 | 作者Blog

作者豆瓣

原创粉丝点击