3287 - 数字串
时间限制 : 1 秒
内存限制 : 128 MB
<b><span style="font-family:宋体;">问题描述:</span><span></span></b>
<span style="font-family:宋体;">任意给出一个正整数</span><span>N</span><span style="font-family:宋体;">,找一个正整数</span><span>M</span><span style="font-family:宋体;">,使得</span><span>N</span><span style="font-family:宋体;">×</span><span>M</span><span style="font-family:宋体;">的值的各位数字全部由数字</span><span>0</span><span style="font-family:宋体;">和</span><span>1</span><span style="font-family:宋体;">组成,请找出满足条件的最小的</span><span>M</span><span style="font-family:宋体;">。如果</span><span>N</span><span style="font-family:宋体;">×</span><span>M</span><span style="font-family:宋体;">的值大于</span><span>2000000000</span><span style="font-family:宋体;">还没有找到满足条件的</span><span>M</span><span style="font-family:宋体;">就输出“</span><span>No found</span><span style="font-family:宋体;">”。</span>
<b><span style="font-family:宋体;">输入输出样例:</span></b>
<span style="font-family:宋体;">输入:</span><span>4</span>
<span style="font-family:宋体;">输出:</span><span>25</span>
题目输入
题目输出
输入/输出样例
输入格式
输出格式
C++解答
#include<iostream> using namespace std; bool find(int x) //判断是否满足条件 { while (x) { int t=x%10; if (t>=2) return false; x/=10; } return true; } int main() { int n,m; cin>>n; for (m=1; m*n<=2000000000; m++) if (find(m*n)) break; if (m*n>2000000000) cout<<"No found\n"; else cout<<m<<endl; return 0; }