高精度算法 加法
一 加法 思路
1 判断s1 s2的长度
2 转置存储s1 s2 并将他们变为int 类型
3 核心代码 s1+s2
4 删除前导0
4 倒置输出结果
#include<stdio.h>
#include<iostream>
#include<string.h>
#include<cstdlib>
using namespace std;
char s1[505],s2[505];
int a[1010],b[1010],c[1010];
int main(){
//输入两个个数
scanf("%s",s1);
scanf("%s",s2);
//判断长度
int len1= strlen(s1);
int len2= strlen(s2);
//转置存储两个数 将字符串变为int 类型
for(int i=0;i<len1;i++)
a[len1-i]=s1[i]-'0';
for(int i=0;i<len2;i++)
b[len2-i]=s2[i]-'0';
//进行A+B的计算
int len3=max(len1,len2)+1;
for(int i=1;i<=len3;i++)
{
c[i]+=a[i]+b[i];
c[i+1]=c[i]/10;
c[i]=c[i]%10;
}
//将c[i]输出 删除前导0
if(c[len3]==0&&len3>0) len3--;
for(int i=len3;i>0;i--){
printf("%d",c[i]);
}
return 0;
}
本文介绍了高精度加法的算法思路,包括判断输入数的长度,转置并转换为整数类型,核心加法运算,删除前导零以及倒置输出结果的过程。
1万+

被折叠的 条评论
为什么被折叠?



