| 
	
	
		
			这题就是一个大数的加法题,不过要注意的是,中间需要清空的数组,一定要清空,不然会出错,我由于有数组没清空,导致WA了一次   code 1
  #include <stdio.h> 2
  #include <string.h> 3
  #include <stdlib.h> 4
  #include <math.h> 5
  6
  int add_a[2006],add_b[2006],add_c[2006]; 7
  int tmp[2006]; 8
  int len_a,len_b,len_c,len_tmp; 9
  int  tran(int num[],int n)//把一个数转换成一个数组 10
    { 11
  int ret = 0; 12
  memset(num,0,sizeof(num)); 13
  while(n) 14
     { 15
  num[ret] = n%10; 16
  n /= 10; 17
  ret++; 18
  } 19
  return ret;//返回长度 20
  } 21
  void big_add()//大数加法  且完成数组的变换 及加完之后 22
    {                            //把b赋给a c赋给b 结果赋给c 23
  int i; 24
  int big_index; 25
  memset(tmp,0,sizeof(tmp)); 26
  big_index = len_a>len_b?len_a:len_b;//得到两个数组中长度大的 27
  for(i = 0;i < big_index;i++) 28
     { 29
  tmp[i] += add_a[i]+add_b[i]; 30
  tmp[i+1] += tmp[i]/10; 31
  tmp[i] = tmp[i]%10; 32
  } 33
  if(tmp[big_index])//计算结果的长度 34
  len_tmp = big_index+1; 35
  else 36
  len_tmp = big_index; 37
  big_index = len_c>len_tmp?len_c:len_tmp; 38
  for(i = 0;i < big_index;i++) 39
     { 40
  tmp[i] += add_c[i]; 41
  tmp[i+1] += tmp[i]/10; 42
  tmp[i] = tmp[i]%10; 43
  } 44
  if(tmp[big_index]) 45
  len_tmp = big_index+1; 46
  else 47
  len_tmp = big_index; 48
   49
  memset(add_a,0,sizeof(add_a));//这里要清空 50
  for(i = 0;i < len_b;i++)             //b--->a 51
  add_a[i] = add_b[i]; 52
  len_a = len_b; 53
  memset(add_b,0,sizeof(add_b)); 54
  for(i = 0;i < len_c;i++) 55
  add_b[i] = add_c[i]; 56
  len_b = len_c; 57
  memset(add_c,0,sizeof(add_c)); 58
  for(i = 0;i < len_tmp;i++) 59
  add_c[i] = tmp[i]; 60
  len_c = len_tmp; 61
  return ; 62
  } 63
  void pro(int a,int b,int c) 64
    {//计算a99 65
  int i,j; 66
   67
  memset(add_a,0,sizeof(add_a)); 68
  memset(add_b,0,sizeof(add_b)); 69
  memset(add_c,0,sizeof(add_c)); 70
  len_a = tran(add_a,a); 71
  len_b = tran(add_b,b); 72
  len_c = tran(add_c,c); 73
  for(i = 3;i < 100;i++) 74
     { 75
  big_add(); 76
  } 77
   78
  } 79
  80
  void print() 81
    {//print the ans 82
  int i; 83
  for(i = len_c-1;i >= 0;i--) 84
  printf("%d",add_c[i]); 85
  printf("\n"); 86
  return ; 87
  } 88
  int main(void) 89
    { 90
  int a,b,c; 91
  while(EOF != scanf("%d%d%d",&a,&b,&c)) 92
     { 93
  pro(a,b,c); 94
  print(); 95
  } 96
  return 0; 97
  } 98
      
	    
    
 |