/************************************************************************/
/*题目:任意给定一个自然数N,寻找一个M,要求M是N的倍数,且它的所有各位数字
/* 都是1或者0组成,并要求M尽可能小。
/*例:N = 3 -->M = 3 * 37 = 111 N = 31 -->M = 31 * 3581 = 111011
/************************************************************************/
#include <iostream>
using namespace std;
int main()
{
int N;
long M;
long t;
bool bFound = false;
cout << "Please specilize a value to N: ";
cin >> N;
for (M = N * 2; !bFound; M++)
{
t = M;
if (M % N == 0)
{
while (t)//逐位数字比较
{
if (t % 10 != 1 && t % 10 != 0)
break;
t /= 10;
if (t == 1)
{
bFound = true;
cout << "M = " << N << " * " << M / N << " = " << M << endl;
}
}
}
}
system("pause");
return 0;
}
两个数的乘积结果全为1和0组成的数
寻找特定倍数的算法
最新推荐文章于 2023-04-01 11:26:43 发布
3725

被折叠的 条评论
为什么被折叠?



