zoukankan      html  css  js  c++  java
  • PAT A1023

    clipboard.png
    简单的大数问题,long long并不能容纳21位数字,这是刚开始没有注意到的

    #include<iostream>
    #include<stdlib.h>
    #include<stdio.h>
    #include<string>
    #include<cstring>
    #include<vector>
    using namespace std;
    using std::vector;
    char s[21];
    int mem[10]={0};
    int main(){
        vector<int>v;
        scanf("%s",s);
        for(int i=0;i<strlen(s);i++){
            mem[s[i]-'0']++;
        }
        //进行乘2大数运算;
        int ct=0;
        for(int i=strlen(s)-1;i>=0;i--){
            int a=(s[i]-'0')*2+ct;
            ct=a/10;
            v.push_back(a%10);
        }
        if(ct!=0)
            v.push_back(ct);
        for(int i=v.size()-1;i>=0;i--){
            mem[v[i]]--;
        }
        bool flag=true;
        for(int i=0;i<10;i++){
            if(mem[i]!=0){
                flag=false;
                break;
            }
        }
        if(flag){
            cout<<"Yes"<<endl;
            for(int i=v.size()-1;i>=0;i--){
                cout<<v[i];
            }
            cout<<endl;
        }else{
            cout<<"No"<<endl;
            for(int i=v.size()-1;i>=0;i--){
                cout<<v[i];
            }
            cout<<endl;
        }
        system("pause");
        return 0;
    }
    
  • 相关阅读:
    在centos上搭建Git服务器
    glog日志库移植Android平台
    水葱
    路易斯安娜鸢尾
    再力花
    矮生百慕大
    洒金珊瑚
    八角金盘
    锦绣杜鹃
    茶梅球
  • 原文地址:https://www.cnblogs.com/twodog/p/12135175.html
Copyright © 2011-2022 走看看