HDoj Integer Inquiry(大数)

2024-06-15 19:58
文章标签 integer 大数 hdoj inquiry

本文主要是介绍HDoj Integer Inquiry(大数),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  真心要哭了。。这几天在搞大数  高精度计算  昨晚在机房敲 很快敲完了  就是过不了啊过不了  劳资都想骂脏话啊   NMB  一开始不输出前面的0啊 过不了  看discuss 百度 找了个AC的代码 找了几组测试数据  那个代码输出前面的0啊  我的妈  今天有找了个代码 不输出0啊 我的天。。。真心要被逼疯了  幸好还是AC了。。。算是有进步吧  之前的心态肯定坚持不下来啊    

  

杭电ACM 2014暑期集训队——选拔安排~

Integer Inquiry

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 11714    Accepted Submission(s): 2942


Problem Description
One of the first users of BIT's new supercomputer was Chip Diller. He extended his exploration of powers of 3 to go from 0 to 333 and he explored taking various sums of those numbers. 
``This supercomputer is great,'' remarked Chip. ``I only wish Timothy were here to see these results.'' (Chip moved to a new apartment, once one became available 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 be 100 or fewer characters in length, and will only contain digits (no VeryLongInteger 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 the VeryLongIntegers 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 followed by N input blocks. Each input block is in the format indicated in the problem description. There is a blank line between input blocks.

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

Sample Input
      
1123456789012345678901234567890 123456789012345678901234567890 123456789012345678901234567890 0

Sample Output
      
370370367037037036703703703670

Source
East Central North America 1996

Recommend


 题意很简单  就是输入一连串数字作为一个大的整数   遇到单个0结束输出

 每个CASE输出之间  输出一个空行

 我的测试数据:

5
123456789012345678901234567890
123456789012345678901234567890
123456789012345678901234567890
0


000
00
0


02
088
0


9999
99
0


00
00
0


代码如下:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cstdlib>
using namespace std;


const int maxn=110;
char s[maxn];
int res[maxn];
int num[maxn];


int main()
{
freopen("test.txt","r",stdin);
    int n;
    cin>>n;
    getchar();
    while(n--)
    {
        memset(res,0,sizeof(res));
        int m=0;
        while(1)
        {
            gets(s);
            if(strlen(s)==1&&s[0]=='0')
                break;
            int k=0;
            for(int i=strlen(s)-1;i>=0;i--)
            {
                num[k++]=s[i]-'0';
                //cout<<num[k-1]<<" ";
            }
//cout<<endl;
            m=max(m,k);
//cout<<"m1="<<m<<endl;
            if(m>k)
            {
                for(int i=k;i<m;i++)
                    num[i]=0;
            }
            for(int i=0;i<m;i++)
            {
                res[i]+=num[i];
                res[i+1]+=res[i]/10;
                res[i]=res[i]%10;
            }


//cout<<"res[m]="<<res[m]<<"res[m-1]"<<res[m-1]<<endl;
            if(res[m]>0)
            {
                res[m]+=res[m-1]/10;
                res[m-1]=res[m-1]%10;
                m++;
            }
        }
//cout<<"m2="<<m<<endl;
//        for(int i=m-1;i>=0;i--)
//            cout<<res[i];
        int flag=0;
        int x=m-1;
        for(;x>=0;x--)
        {
            if(res[x]>0)
                flag=1;
            if(flag)
                cout<<res[x];
        }
        if(flag==0)
            cout<<0;//如果输入的全是0   输出0
        cout<<endl;
        if(n)
            cout<<endl;
    }
    return 0;
}



终究还是AC了  好开心。。。。




这篇关于HDoj Integer Inquiry(大数)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1064428

相关文章

uva 10069 DP + 大数加法

代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstring>#include <cmath>#include <stack>#include <vector>#include <queue>#include <map>#include <cl

Java验证辛钦大数定理

本实验通过程序模拟采集大量的样本数据来验证辛钦大数定理。   实验环境: 本实验采用Java语言编程,开发环境为Eclipse,图像生成使用JFreeChart类。   一,验证辛钦大数定理 由辛钦大数定理描述为: 辛钦大数定理(弱大数定理)  设随机变量序列 X1, X2, … 相互独立,服从同一分布,具有数学期望E(Xi) = μ, i = 1, 2, …, 则对于任意正数ε ,

找第K大数(ACdream 1099)

瑶瑶的第K大 Time Limit: 4000/2000MS (Java/Others)  Memory Limit: 256000/128000KB (Java/Others) Submit  Statistic  Next Problem Problem Description 一天,萌萌的妹子--瑶瑶(tsyao)很无聊,就来找你玩。可是你们都不知道玩什么。。。

如何简便的将List<Integer>转换成int[]?

使用Java 8的流(Streams)  ArrayList<Integer> list = new ArrayList<>();int[] intArray = list.stream().mapToInt(Integer::intValue).toArray();  若是maven项目可使用Apache Commons Lang库 <dependency> <groupId>

[LeetCode] 7. Reverse Integer

题:https://leetcode.com/problems/reverse-integer/description/ 题目 Given a 32-bit signed integer, reverse digits of an integer. Example 1: Input: 123Output: 321Example 2:Input: -123Output: -321Ex

LeetCode - 12. Integer to Roman

12. Integer to Roman  Problem's Link  ---------------------------------------------------------------------------- Mean:  将一个int型的整数转化为罗马数字. analyse: 没什么好说的,直接维基百科. Time complexity: O(

带小数的String转整数Integer

其实String和Integer、Float、Double等相互转换这都很容易。可是带小数的String转Float、Double可能会出现“模糊数字”。 那么怎么避免呢?见下实例和结论。 System.out.println("**********2.4***********");String a = "2.4"; System.out.println(a); // 2.4System.o

Insertion Sort Integer Array Insertion Sort Linked List

Sort Integer Array using Insertion sort. //********************************************************************************************************/* Insertion Sort 原理:就是前面的sort部分全部是相对值,从后面拿一个元素,然后跟

Subtract the Product and Sum of Digits of an Integer

Given an integer number n, return the difference between the product of its digits and the sum of its digits. Example 1: Input: n = 234Output: 15 Explanation: Product of digits = 2 * 3 * 4 = 24