标题信息:总结多个大整数,(使用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;

}

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

hdu1047(模拟大量的循环添加)的更多相关文章

  1. twisted 模拟scrapy调度循环

    """模拟scrapy调度循环 """from ori_test import pr_typeimport loggingimport ti ...

  2. js循环添加事件的问题

    1.需求 给下面每个按钮增加事件 <ul id="list"> <li>按钮1</li> <li>按钮2</li> &l ...

  3. JS给元素循环添加事件的问题

    <ul> <li>男</li> <li>女</li> <li>老</li> <li>少</li&g ...

  4. JS - 循环添加 DropDownList(Select)

    代码: <td style="padding-left: 10px;"> <select id="ddl_picture_3"> < ...

  5. 【特效】给元素循环添加class

    经常会遇到给元素循环添加class的效果,例如下面这个图 每个模块的背景色和图标都不相同,但是呢,模块的数量又不确定,说不定有几十个,那我不能设计几十个图标吧,所以,可以做成每9个一循环,也就是第10 ...

  6. select(有局限性),jq循环添加select的值

    加载的时候改变select的默认值,只需改变select的value值 $("#one").val(@ViewBag.val);//@ViewBag.val是要默认选中的值的val ...

  7. Android及java中list循环添加时覆盖的问题-20171021

    鉴于新浪博客太渣,转到这来. 最近在工程设计时,使用list循环添加map对象发现,最终全部变为最后一个map的值,但是list的数值还是正确的,也就是说添加了N(list长度或者说循环的次数)个相同 ...

  8. List循环添加数据覆盖问题

    问题:java开发时,当我们使用List.add();循环添加数据,有时会出现前面添加的数据会被后面覆盖的现象.这是怎么回事尼? 会覆盖数据的代码 package com.boot.test; imp ...

  9. C# 使用复选框实现循环添加多条信息入库!

    先在前台获取到所有要添加信息的Id $('.imgid').each(function () {                     if ($(this).attr("src" ...

随机推荐

  1. SEOer怎样安排一天的工作

    昨天一文谈到seo车型优化恐惧了,一些兄弟果断说,不玩seo.妮子不是吓人的,希望大家好好看清自己如今行业现状,怎样突破下步,如今仅仅剩下竞价和B2B付费平台了吗?每天坚持博客更新,尽管不像那些名博那 ...

  2. dsadm-dsconf数据导入导出

    cd instance-path/ds6/bin   #注意黄色参数修改为跟实际环境一致 -c,--accept-cert Does not ask for confirmation before a ...

  3. mybatis之mapper.xml分析

    select: id:方法名,在同一个mapper.xml中,要保持唯一 parameterType:指定输入的参数类型,不是必须的,如果不指定,mybatis会自动识别(推荐指定). resultT ...

  4. visual studio插件 visual assistx

    http://www.wholetomato.com/downloads/CheckForUpdate.asp?v=1925&e=&b=n&r=y&i=10&v ...

  5. javascript:Array.slice.call 到Array.prototype.slice.call

    举个从对象到数组的例子: var obj={}; obj[1]=1; obj[2]=2; obj.length=2; var arr =Array.prototype.slice.call(obj); ...

  6. 小巧实用的数字加减插件(jquery插件)

    2015-12-04 近期项目需要,我将插件更新了,增加了两个参数,一个参数控制文本框是否支持输入,另一个参数则是新增了一个回调函数,返回文本框内的值.另外对代码局部重构了,优化了一下封装,需要的朋友 ...

  7. sqlserver查询分析器创建sql查询日志

    USE [master]GO /****** Object: Audit [ServerAuditDB] Script Date: 2016-04-28 16:02:58 ******/CREATE ...

  8. 这样就算会了PHP么?-6

    关于PHP与WEB表单交互的CASE,十多年前没拾起来啊. 下一步进入JS与PHP的交互... <form name="form1" method="post&qu ...

  9. KEIL简单实例

    好久都没有用KEIL了,突然想动手,一时还真不知道从哪开始写,所以先弄个小实例,以便参考:#include <reg52.h>  //加载包括一个52标准内核的头文件,里面主要是一些寄存器 ...

  10. C#中使用SendMessage在进程间传递数据的实例

    原文:C#中使用SendMessage在进程间传递数据的实例 1 新建解决方案SendMessageExample 在解决方案下面新建三个项目:CopyDataStruct,Receiver和Send ...