前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >4219. 找倍数

4219. 找倍数

作者头像
浪漫主义狗
发布2022-07-11 08:53:42
1760
发布2022-07-11 08:53:42
举报
文章被收录于专栏:HAUE_LYS'BlogHAUE_LYS'Blog

4219. 找倍数

原题链接

给定一个正整数 n,请你找到一个它的非零倍数 m。

要求 m 中只包含数字 0 或 1,并且总位数不超过 100 位。

输入格式 输入包含多组测试数据。

每组数据占一行,包含一个正整数 n。

当输入 n=0 时,表示输入结束。

输出格式 每组数据输出一行 m。

如果方案不唯一,则输出任意合理方案均可。

数据范围 1≤n≤200 输入样例:

代码语言:javascript
复制
2
6
19
0

输出样例:

输出样例:

代码语言:javascript
复制
10
100100100100100100
111111111111111111

分析

  • 难点在于取模注意:11 % 2 = ((1 × 10) % 2 + 1) % 2

代码

代码语言:javascript
复制
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n;

queue<pair<string,ll>> ans;  //存储答案

int main()
{
    while(cin>>n&&n){  

        while(ans.size()) ans.pop();  //清空数据

        ans.push({"1",1});  //将1入队,作为队头扩展搜索

        while(!ans.empty()){
            auto p=ans.front();
            ans.pop();
            if(p.second==0){  //满足条件输出,
                cout<<p.first<<endl;
                break;
            }
            ans.push({p.first+"0",(p.second*10)%n});  //末尾补零入队,并对其取模
            ans.push({p.first+"1",(p.second*10+1)%n});  //末尾补1入队,并对其取模
        }

    }

    return 0;
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-6-15 8,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 4219. 找倍数
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档