P1601A+B高精度求解
  • 板块学术版
  • 楼主Starry_dream
  • 当前回复25
  • 已保存回复25
  • 发布时间2023/7/9 21:07
  • 上次更新2023/11/3 10:51:21
查看原帖
P1601A+B高精度求解
818820
Starry_dream楼主2023/7/9 21:07

我跟评论区里的大佬,用户ARachnidaking写的差不多,思路一样,为什么只对了#2,#4,其他WA。我错在哪里? 下面是我的代码:

#include<bits/stdc++.h>
using namespace std;
int main()
{
	string a,b;
	cin>>a>>b;
	int len=a.size(),sz1[600]={0},sz2[600]={0},sz3[600]={0};//len可变化 
	for(int i=0;i<len;i++)
	{
		sz1[len-1-i]=a[i]-'0';/*sz1的最后一位=a的第0位,相当于倒序。
		减'0'一定要记得!*/	
	}	
	len=b.size();
	for(int i=0;i<len;i++)
	{
		sz2[len-1-i]=b[i]-'0';//sz2的最后一位=b的第0位,相当于倒序	
	}
	len=max(a.size(),b.size());
	for(int i=0;i<len;i++)
	{
		sz3[i]=sz3[i]+sz1[i]+sz2[i];//累加
		if(sz3[i]>10)//进位 
		{
			sz3[i+1]++;
			sz3[i]-=10;	
		}	
	}
	if(sz3[len]>0)//为避免如400+700只输出三位,背下来!! 
	{
		len++;
	}
	for(int i=len-1;i>=0;i--)
	{
		cout<<sz3[i];
	}
	return 0;	
} 
2023/7/9 21:07
加载中...