Integer Inquiry

过年后就自己开始想做题了,可是题目是英文,还是不太理解题意,就不用说是自己做了,所以会先在网上自己把答案搜出来,然后再去理解,所以先在开始处于原来的状态了。看到题目的时候根本想不到主要考虑的是什么,看到答案后有时候还是不理解。

Integer Inquiry

Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K(Java/Other)

Total Submission(s) : 7   Accepted Submission(s) : 2

Font: Times NewRoman | Verdana | Georgia

Font Size: ← →

Problem Description

One of the first users of BIT's new supercomputer wasChip Diller. He extended his exploration of powers of 3 to go from 0 to 333 andhe explored taking various sums of those numbers.
``This supercomputer is great,'' remarked Chip. ``I only wish Timothy were hereto see these results.'' (Chip moved to a new apartment, once one becameavailable on the third floor of the Lemon Sky apartments on Third Street.)

Input

The input will consist of at most 100 lines of text,each of which contains a single VeryLongInteger. Each VeryLongInteger will be100 or fewer characters in length, and will only contain digits (noVeryLongInteger will be negative).

The final input line will contain a single zero on a line by itself.

Output

Your program should output the sum of theVeryLongIntegers given in the input.


This problem contains multiple test cases!

The first line of a multiple input is an integer N, then a blank line followedby N input blocks. Each input block is in the format indicated in the problemdescription. There is a blank line between input blocks.

The output format consists of N output blocks. There is a blank line betweenoutput blocks.

Sample Input

1

 

 

123456789012345678901234567890

123456789012345678901234567890

123456789012345678901234567890

0

Sample Output

370370367037037036703703703670

这个题主要解决的是:首先是把输入的数的位数相同,若不同前面补0

#include<stdio.h>

#include<string>

#include<iostream>

usingnamespace std;

 

//高精度加法

//只能是两个正数相加

stringadd(string str1,string str2)//高精度加法

{

    string str;

 

    int len1=str1.length();

    int len2=str2.length();

    //前面补0,弄成长度相同

    if(len1<len2)

    {

        for(int i=1;i<=len2-len1;i++)

           str1="0"+str1;

    }

    else

    {

       for(int i=1;i<=len1-len2;i++)

           str2="0"+str2;

    }

    len1=str1.length();

    int cf=0;

    int temp;

    for(int i=len1-1;i>=0;i--)

    {

        temp=str1[i]-'0'+str2[i]-'0'+cf;

        cf=temp/10;

        temp%=10;

        str=char(temp+'0')+str;

    }

    if(cf!=0) str=char(cf+'0')+str;

    return str;

}

 

 

intmain()

{

    int T;

    scanf("%d",&T);

    while(T--)

    {

        string sum="0";

        string str1;

        while(cin>>str1)

        {

            if(str1=="0")break;

            sum=add(sum,str1);

        }

        cout<<sum<<endl;

        if(T>0)cout<<endl;

    }

return 0;

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值