HDU:Integer Inquiry

#include"stdio.h"
#include"stdlib.h"
#include"string.h"
#define N 105
int a[N];
int main()
{
    int i,j,n,n1,flag;
    char ch[N];
    scanf("%d",&n);
    while(n--)
    {
        memset(a,0,sizeof(a));      //数组初始化为零
        while(scanf("%s",ch),ch[0]!=‘0‘)     //输入零结束
        {
            n1=strlen(ch);
            for(i=n1-1,j=0;i>=0;i--)
            {
                a[j++]+=ch[i]-‘0‘;
                a[j]+=a[j-1]/10;         //进位
                a[j-1]%=10;              //取余
            }
        }
        flag=0;
        for(i=N-1;i>0;i--)
        {
            if(flag)
                printf("%d",a[i]);
            else if(a[i])
            {
                printf("%d",a[i]);
                flag=1;
            }
        }
        printf("%d\n",a[0]);         //输入0时应输出0,错了n多次
        if(n)                    //输出块之间有空行
            printf("\n");
    }
    return 0;
}

改版 为了一直WA

#include"stdio.h"
#include"stdlib.h"
#include"string.h"
#define N 105
int a[N],b[N];
int main()
{
    int i,j,n,n1,flag;
    char ch[N];
    scanf("%d",&n);
    while(n--)
    {
        memset(a,0,sizeof(a));      //数组初始化为零
        while(scanf("%s",ch),ch[0]!=‘0‘)     //输入零结束
        {
            n1=strlen(ch);
            memset(b,0,sizeof(b));
            for(i=0,j=n1-1;j>=0;j--,i++)
                  b[i]=ch[j]-‘0‘;
            int h=0;
            int m;
            for(i=0;i<n1;i++)
            {
                m=a[i]+b[i]+h;
                a[i]=m%10;
                h=m/10;
            }
            while(h)
            {
                a[i]=h%10;
                n1++;
                h=h/10;
            }
        }
        flag=0;
        for(i=N-1;i>0;i--)
        {
            if(flag)
                printf("%d",a[i]);
            else if(a[i])
            {
                printf("%d",a[i]);
                flag=1;
            }
        }
        printf("%d\n",a[0]);         //输入0时应输出0,错了n多次
        if(n)                    //输出块之间有空行
            printf("\n");
    }
    return 0;
}

时间: 2024-12-06 11:30:07

HDU:Integer Inquiry的相关文章

hdu acm-1047 Integer Inquiry(大数相加)

Integer Inquiry Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 11678    Accepted Submission(s): 2936 Problem Description One of the first users of BIT's new supercomputer was Chip Diller. He ex

HDU - 1047 - Integer Inquiry (大数高精度)

Integer Inquiry Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 13969    Accepted Submission(s): 3523 Problem Description One of the first users of BIT's new supercomputer was Chip Diller. He e

HDU 1047.Integer Inquiry【多个大数相加】【高精度】【8月25】

Integer Inquiry 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,

HDU 1047 [Integer Inquiry] 高精度 格式

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1047 题目大意:T组数据.每组给出n个大数,输出他们的和 关键思想:高精度,格式控制 代码如下: #include <iostream> #include <memory.h> using namespace std; int a[102][110]; int ans[110]; int cnt=0; bool flag;//处理前导零 void solve(){ int sum,c=

hdu 1047 Integer Inquiry(高精度数)

Problem Description Oneof the first users of BIT's new supercomputer was Chip Diller. He extended hisexploration of powers of 3 to go from 0 to 333 and he explored taking varioussums of those numbers. ``This supercomputer is great,'' remarked Chip. `

HDU 1047 Integer Inquiry 大数相加 string解法

本题就是大数相加,题目都不用看了. 不过注意的就是HDU的肯爹输出,好几次presentation error了. 还有个特殊情况,就是会有空数据的输入case. #include <stdio.h> #include <vector> #include <string.h> #include <algorithm> #include <iostream> #include <string> #include <limits.h

hdu 1047 Integer Inquiry(大数)

题意:整数大数加法 思路:大数模板 #include<iostream> #include<stdio.h> #include<stdlib.h> #include<string.h> using namespace std; #define MAXN 9999//万进制 #define DLEN 4//4位 class BigNum{ private: int a[500];//可以控制大数位数(500*4) int len;//大数长度 public:

HDU 1047 - Integer Inquiry

大数加 然后就没有,然后了.. 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 using namespace std; 5 char s[105]; 6 int ans[10005]; 7 int a[10005]; 8 int n; 9 int main() 10 { 11 scanf("%d",&n); 12 while(n--) 13 { 14 mems

02:Integer Inquiry

#include<iostream> #include<string> using namespace std; int sum[201]; string s; int main() { while(cin>>s&&!(s.length()==1&&s[0]=='0')) { int x=s.length(); int cnt=x-1; while(cnt>=0) { sum[200-x+1+cnt]+=s[cnt]-48; cnt