題意:

給數字的位數以及每位的數字,求兩個數字相加

 

解法:

大數加法,要注意最高位可能會進位,所以要往前多看一位
 

程式碼:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int num[1234567];
int m;
int main(){
    int t;
    int a,b;
    int i;
    scanf("%d",&t);
    while(t--){
        scanf("%d",&m);
        for(i=m-1;i>=0;--i){
            scanf("%d %d",&a,&b);
            num[i] = a+b;
        }
        num[m] = 0;
        for(i=0;i<m;++i){
            num[i+1] += num[i]/10;
            num[i] %= 10;
        }
        for(i=m;i>0 &&num[i]==0;--i);
        for(;i>=0;--i)putchar(num[i]+'0');
        puts("");
        if(t)puts("");
    }
    return 0;
}

arrow
arrow
    全站熱搜

    alan790712 發表在 痞客邦 留言(0) 人氣()