王道机试指南 例题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;
}

运行结果:

全部评论
谢谢楼主的思路
1 回复 分享
发布于 2023-02-13 13:06 湖南
膜拜大佬也
1 回复 分享
发布于 2023-02-13 12:57 天津

相关推荐

评论
点赞
8
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务