加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

POJ 1426 字符串来处理大数求解该题

发布时间:2020-12-14 02:02:54 所属栏目:大数据 来源:网络整理
导读:#include iostream#include cstringtypedef long long ll;using namespace std;const int maxn = 200;string s[maxn];int m[maxn],p,q,n;bool vis[205];void bfs(){ p = q = 0; memset(vis,sizeof(vis)); s[q] = "1"; m[q++] = 1; vis[1] = true; while(p!=q
#include <iostream>
#include <cstring>
typedef long long ll;
using namespace std;
const int maxn = 200;
string s[maxn];
int m[maxn],p,q,n;
bool vis[205];
void bfs(){
    p = q = 0;
    memset(vis,sizeof(vis));
    s[q] = "1";
    m[q++] = 1;
    vis[1] = true;
    while(p!=q){
        s[q] = s[p] + "0";
        m[q] = m[p]*10%n;
        if(m[q]==0){
            cout<<s[q]<<endl;
            return ;
        }
        if( !vis[m[q]] ){
            vis[m[q]] = true;
            q++;
        }
        s[q] = s[p] + "1";
        m[q] = (m[p]*10+1)%n;
        if(m[q]==0){
            cout<<s[q]<<endl;
            return ;
        }
        if( !vis[m[q]] ){
            vis[m[q]] = true;
            q++;
        }
        p++;
    }
}
int main(){
    while(cin>>n,n){
        bfs();
    }
    return 0;
}该解法对于BFS当中的队列的应用 未采用STL,而是采用数组下标进行操作,值得学习。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读