neuq oj 1018 A+B again C語言

1018: A+B again

時間限制: 1 Sec  內存限制: 128 MB
提交: 435  解決: 80
[提交][狀態][討論版]

(本題有疑問,有待商榷)

題目描述

谷學長有一個非常簡單的問題給你,給你兩個整數A和B,你的任務是計算A+B。

輸入

輸入的第一行包含一個整數T(T<=20)表示測試實例的個數,然後2*T行,分別表示A和B兩個正整數。注意整數非常大,那意味着你不能用32位整數來處理。你可以確定的是整數的長度不超過1000。

輸出

對於每一個樣例,你應該輸出兩行,第一行是"Case #:",#表示第幾個樣例,第二行是一個等式"A+B=Sum",Sum表示A+B的結果。注意等式中有空格。

樣例輸入

2
1
2
112233445566778899
998877665544332211

樣例輸出

Case 1:
1 + 2 = 3
Case 2:
112233445566778899 + 998877665544332211 = 1111111111111111110

代碼

#include "stdio.h"
#include "string.h"
int main()
{
    int i,t,j=1,n,len,k;
    char sum[1009],sa[1009],sb[1009];
    scanf("%d",&t);
    getchar();
    while(t--)
    {    
        for(i=0;i<1009;i++)
            sum[i]='0';
        scanf("%s%s",sa,sb);
        len=strlen(sa);
        for(i=len-1,k=0;i>=0;i--,k++)
        {
            sum[k]=sum[k]-'0'+sa[i];
             n=k;
            while(sum[n]>'9')
            {
                sum[n+1]=sum[n+1]+(sum[n]-'0')/10;
                sum[n]=(sum[n]-'0')%10+'0';
                n++;
            }
        }
        len=strlen(sb);
        for(i=len-1,k=0;i>=0;k++,i--)
        {
            sum[k]=sum[k]-'0'+sb[i];
            n=k;
            while(sum[n]>'9')
            {
                sum[n+1]=sum[n+1]+(sum[n]-'0')/10;
                sum[n]=(sum[n]-'0')%10+'0';
                n++;
            }
        }
        printf("Case %d:\n%s + %s = ",j,sa,sb);
        j++;
        for(i=1008;sum[i]=='0';i--);
        for(;i>=0;i--)
            printf("%c",sum[i]);
        //printf("\n");
        if(t>0)
            printf("\n");
    }
    return 0;
}


體會:
1.字符串char涉及函數
*用法:
該函數聲明在stdio.h頭文件中,使用的時候要包含stdio.h頭文件。如:
#include<stdio.h>
int getchar(void);
*用途:讀取字符
從stdio流中讀字符,相當於getc(stdin),它從標準輸入裏讀取下一個字符。返回類型爲int型,返回值爲用戶輸入的ASCⅡ碼,出錯返回-1。
2.

strlen

 

(C語言函數)

 
strlen所作的僅僅是一個計數器的工作,它從內存的某個位置(可以是字符串開頭,中間某個位置,甚至是某個不確定的內存區域)開始掃描,直到碰到第一個字符串結束符'\0'爲止,然後返回計數器值(長度不包含'\0')。 
中文名
strlen
頭文件
string.h
格    式
strlen (字符數組名)
功    能
計算給定字符串的長度
實    質
C語言函數
3.遺留

發佈了33 篇原創文章 · 獲贊 4 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章