兩個數的乘積結果全為1和0組成的數
/************************************************************************/
/*題目:任意給定一個自然數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;
}
最後更新:2017-04-02 15:15:29