复杂A+B问题(两个很大的数相加问题)

复杂A+B问题(两个很大的数相加问题)

思路:用字符串实现
*1.先将A和B以字符串的形式输入。
2.调用字符串函数求A和 B的长度
3.找出长的字符串数组作为存放和的数组
4.将A和B逆序——一位一位从后往前加
5.定义变量one——表示是否要进位
6.定义变量sum——存放临时和(比如:5+9=14)
7.求sum = str1[i]-‘0’+str2[i]-‘0’+one; //将字符数字变为普通数字
8.求one = sum/10; //判断是否要进位
9.求本位数 temp = sum%10; //得出本位的数字
10.再将本位数转化为字符串 str1[i] = temp+‘0’;
11.如果短的字符串数组用完,只需把长的字符串数组复制到存和数组
12.注意进位判断:
temp = str1[i]-‘0’+one;
one = temp/10;
temp = temp%10;
str1[i] = temp+‘0’;
13.最后一步还得判断是否存和数组得变长:
if (one)
str1[strlen(str1)]=‘1’;//如果最后一位要进位
//则数组的长度会加1,同时把下一位赋值1
(如果自定义存和数组为长数组加一就可以不用判断)
*
代码实现:

#include
#include
void reversal(char *str)        //

你可能感兴趣的:(带有一定简单算法或技巧的编程题,C语言,大数A+B问题)