zoukankan      html  css  js  c++  java
  • hdu1047(模拟大量的循环添加)

    标题信息:总结多个大整数,(使用add循环相加的功能)

    http://acm.hdu.edu.cn/showproblem.php?

    pid=1047


    AC代码:


    /**
     *大数的循环加法,转化为字符串循环相加到字符串为"0"
     *注意s=="0"的情况,输出数据之间有空格
     */
    #include<iostream>
    #include<string>
    #include<cstdio>
    using namespace std;
    string add(string s1,string s2){//字符串模拟大数加法,
        string s;
        int len1,len2;
        len1=s1.size()-1; len2=s2.size()-1;
        int i=0,flag=0;
        while(len1>-1&&len2>-1){
            int sum=flag+(s1[len1--]-'0')+(s2[len2--]-'0');
            s+=char ((sum)%10+'0');
            flag=sum/10;
        }
        while(len1>-1){
            int sum=flag+(s1[len1--]-'0');
            s+=char ((sum)%10+'0');
            flag=sum/10;
        }
        while(len2>-1){
            int sum=flag+(s2[len2--]-'0');
            s+=char ((sum)%10+'0');
            flag=sum/10;
        }
        if(flag) s+=char ('0'+flag);
        //cout<<s<<endl;
        for(int i=0;i<s.size()/2;i++){
            char c=s[i];
            s[i]=s[s.size()-i-1];
            s[s.size()-i-1]=c;
        }
        return s;
    }
    int main()
    {
        int t;
        cin>>t;
        while(t--){
            string s,s1;
            cin>>s;
            if(s=="0"){//仅仅有一个0的情况
                cout<<"0"<<endl;
            }
            else{
                cin>>s1;
                for(int i=1;s1!="0";i++){
                    s=add(s,s1);
                    cin>>s1;
                }
                //cout<<s<<endl;
                int k;
                for(k=0;k<s.size();k++){
                    if(s[k]!='0') break;
                }
                if(k==s.size()) cout<<"0";//全是0
                for(int i=k;i<s.size();i++){
                    cout<<s[i];
                }
                cout<<endl;
            }
            if(t) cout<<endl;//每次输出有一个空格
        }
        return 0;
    }


    版权声明:本文博主原创文章。博客,未经同意不得转载。

  • 相关阅读:
    用POP动画模拟真实秒钟摆动效果
    解析苹果的官方例子LazyTableImages实现图片懒加载原理
    支持xcode6的缓动函数Easing以及使用示例
    [转] iOS 动画库 Pop 和 Canvas 各自的优势和劣势是什么?
    NSJSONSerialization能够处理的JSONData
    [翻译] USING GIT IN XCODE [6] 在XCODE中使用GIT[6]
    [翻译] USING GIT IN XCODE [5] 在XCODE中使用GIT[5]
    [翻译] USING GIT IN XCODE [4] 在XCODE中使用GIT[4]
    [翻译] USING GIT IN XCODE [3] 在XCODE中使用GIT[3]
    【转】断点继传
  • 原文地址:https://www.cnblogs.com/hrhguanli/p/4864793.html
Copyright © 2011-2022 走看看