您的位置:首页 > 其它

hdu--1002--大数加法

2014-07-15 14:27 375 查看
以为已经贴上去了 刚看了下 原来还没贴 看来是自己忘记了 =-=

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

  touch me

#include <iostream>
#include <cstring>
using namespace std;

const int size = 10010;
char str1[size];
char str2[size];
int val[size*2];

void add( )
{
int i , j;
int len1 = strlen( str1 );
int len2 = strlen( str2 );
int maxLen = max( len1 , len2 );
int minLen = min( len1 , len2 );
int len = maxLen;
int ans = 0;
for( i = len1-1 , j = len2-1 ; i>=0&&j>=0 ; i--,j-- )
{
val[maxLen] = ( (str1[i]-'0')+(str2[j]-'0') + ans ) % 10 ;
ans = ( ( str1[i]-'0' ) + (str2[j]-'0' ) + ans ) / 10;
maxLen--;
}
if( len1 == len )
{
for( ; i>=0 ; i-- )
{
val[i+1] = ( ans + (str1[i]-'0') ) % 10;
ans = ( ans + str1[i]-'0' )/10;
}
}
else
{
for( ; j>=0 ; j-- )
{
val[j+1] = ( ans + (str2[j]-'0') ) % 10;
ans = ( ans + str2[j]-'0' ) /10;
}
}
if( ans )
printf( "1" );
for( i = 1 ; i<=len ; i++ )
{
printf( "%d",val[i] );
}
printf( "\n" );
}

int main()
{
int t;
while( cin>>t )
{
for( int i = 1 ; i<=t ; i++ )
{
cin >> str1 >> str2;
printf( "Case %d:\n",i );
printf( "%s + %s = ",str1 , str2 );
add( );
if( i<t )
printf( "\n" );
}
}
return 0;
}


View Code

today:

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

  我们总是在抱怨事与愿违
  却不愿意回头看看自己
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: