hdu--1002--大数加法

以为已经贴上去了 刚看了下 原来还没贴 看来是自己忘记了 =-=

就是一个 大数加法  写着玩玩的~

  touch  me

 1 #include <iostream>
 2 #include <cstring>
 3 using namespace std;
 4 
 5 const int size = 10010;
 6 char str1[size];
 7 char str2[size];
 8 int val[size*2];
 9 
10 void add( )
11 {
12     int i , j;
13     int len1 = strlen( str1 );
14     int len2 = strlen( str2 );
15     int maxLen = max( len1 , len2 );
16     int minLen = min( len1 , len2 );
17     int len = maxLen;
18     int ans = 0;
19     for( i = len1-1 , j = len2-1 ; i>=0&&j>=0 ; i--,j-- )
20     {
21         val[maxLen] = ( (str1[i]-'0')+(str2[j]-'0') + ans ) % 10 ;
22         ans = ( ( str1[i]-'0' ) + (str2[j]-'0' ) + ans ) / 10;
23         maxLen--;
24     }
25     if( len1 == len )
26     {
27         for( ; i>=0 ; i-- )
28         {
29             val[i+1] = ( ans + (str1[i]-'0') ) % 10;
30             ans = ( ans + str1[i]-'0' )/10;
31         }
32     }
33     else
34     {
35         for( ; j>=0 ; j-- )
36         {
37             val[j+1] = ( ans + (str2[j]-'0') ) % 10;
38             ans = ( ans + str2[j]-'0' ) /10;
39         }
40     }
41     if( ans )
42         printf( "1" );
43     for( i = 1 ; i<=len ; i++ )
44     {
45         printf( "%d",val[i] );        
46     }
47     printf( "\n" );
48 }
49 
50 int main()
51 {
52     int t;
53     while( cin>>t )
54     {
55         for( int i = 1 ; i<=t ; i++ )
56         {
57             cin >> str1 >> str2;
58             printf( "Case %d:\n",i );
59             printf( "%s + %s = ",str1 , str2 );
60             add( );
61             if( i<t )
62                 printf( "\n" );
63         }
64     }
65     return 0;
66 } 
View Code

 

today:

  当你在穿山越岭的另一边
  我在孤独的路上没有尽头

  我们总是在抱怨事与愿违
  却不愿意回头看看自己

posted @ 2014-07-15 14:27  radical  阅读(279)  评论(2编辑  收藏  举报