王道机试指南 例题9.2 Find The Multiple
题目:
题目大意:
算法与分析:
宽度优先算法。
代码:
#include <queue>
#include <iostream>
#include <cstdio>
using namespace std;
long long BFS(int n){
queue<long long> q;
q.push(1);
while(q.empty()==0){
long long tmp=q.front();
if(tmp%n==0) return tmp;
q.pop();
q.push(tmp*10);
q.push(tmp*10+1);
}
return -1;
}
int main(){
int n;
while(cin>>n && n!=0){
printf("%lld\n",BFS(n));
}
return 0;
}
运行结果:
查看14道真题和解析