题目链接:<a target=_blank href="http://acm.hust.edu.cn/vjudge/contest/view.action?cid=65959#problem/E">http://acm.hust.edu.cn/vjudge/contest/view.action?cid=65959#problem/E</a><p>这个费时的只有两个数,所以只要把这两个数(99和198)单独 输出就行了。</p><p>其余的用bfs就差不多了。</p>
#include<iostream> #include<sstream> #include<cstdio> #include<cmath> #include<cstring> #include<algorithm> #include<queue> typedef long long LL; using namespace std; LL ans[202]; int n; void bfs(){ queue<LL> q; long long o=1; q.push(o); while(!q.empty()) { LL tmp=q.front(); //cout<<tmp<<endl; if(tmp%n==0){ cout<<tmp<<endl; break; } q.pop(); q.push(tmp*10+1); q.push(tmp*10); } } int main(){ while(cin>>n) { if(!n) break; if(n==99) {cout<<111111111111111111<<endl;continue;} if(n==198) {cout<<1111111111111111110<<endl;continue;} bfs(); } return 0; }