poj 1503 多个大数相加求和

poj 1503 多个大数相加求和
 1
 2 #include < stdio.h >
 3 #include < stdlib.h >
 4 #include < string .h >
 5 #define  MAXSIZE 101
 6 int  main()
 7 {
 8    char line[MAXSIZE];
 9    int sum[MAXSIZE + 1];
10    
11    memset (sum, 0sizeof(sum));
12   
13    while (  scanf ("%s",line) && strcmp (line, "0") )  //求和终止条件 
14    {
15    //处理负数情况 
16      while ( line[0== '-'
17             return 0;
18      
19      //将字符数转化为数字 ,并且相加存到sum【】数组中 
20      int j = strlen(line);
21      for (int i = j - 1; i >= 0; i--)
22      {
23          sum[j-1-i] += (line[i] - '0');
24      }
 
25    }

26    
27    //对sum【】进行进位的处理 
28    for ( int i = 0; i <= MAXSIZE; i++ )
29    {
30        if ( sum[i] >= 10 )
31        {
32             sum[i+1+= (sum[i] / 10);
33             sum[i] = sum[i] % 10;
34        }

35    }
 
36    /**//*int c = 0;
37    for (int i = 0; i < MAXSIZE; i++)
38    {
39        c += sum[i];
40        sum[i] = c % 10;
41        c = c / 10;
42    }
43    
44    for (int i = MAXSIZE; i >= 0; i--)
45    {
46        if (sum[i] != 0)
47        printf ("%d", sum[i]);
48    }*/

49    
50    //进行输出处理
51    bool target = false;
52    for ( int i = MAXSIZE; i >= 0; i--)
53    {
54        if (target)
55           printf ("%d", sum[i]);
56           else if ( sum[i] )
57           {
58                printf ("%d", sum[i]);
59                target = true;
60           }

61    }
 
62    printf ("\n");
63    system("pause");
64    return 0;
65}
 
66

你可能感兴趣的:(poj 1503 多个大数相加求和)