大数相加
思路其实很简单
就是用字符串数组输入,倒叙,全部转化为数字,
把大的数字相加变成每一位数字的相加,考虑进位问题就好。
不得不说字符串数组这输入输出是真方便啊
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void dsj(char a[],char b[],char c[]){
int i,m,n,o,flag = 0;//flag作为计数器,判断进位使用
int len1 = strlen(a);
int len2 = strlen(b);
for (m = 0;m < len1;m ++)//把字符串数组转换为对应的整数
{
a[m] -= 48;
}
for (n = 0;n < len2;n ++)//同上
{
b[n] -= 48;
}
if (len1 < len2)//数组对齐,方便后续计算
{
len1 = len2;
}
for (i = 0;i <= len1;i ++)//核心算法
{
c[i] = a[i] + b[i];//每位相加
if (flag == 1)//计数器如果为1,进位加一,计数器归零
{
c[i]