为什么我的高精加会出这个问题
  • 板块灌水区
  • 楼主CrisisLily9654
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/6/8 21:39
  • 上次更新2024/6/9 02:38:00
查看原帖
为什么我的高精加会出这个问题
815833
CrisisLily9654楼主2024/6/8 21:39

代码:

#include<bits/stdc++.h>
using namespace std;

int a[210],b[210];
int c[210];
int lena,lenb,lenc;
string t;

//将字符串的数转存到数组中 
int input(string t,int arr[]){
	int len=0;
	for(int i=t.size()-1;i>=0;i--){
		arr[len]=t[i]-'0';
		len++;
	}
	return len;
}

void add(int a[],int b[]){
	for(int i=0;i<lenc;i++){
		c[i]=a[i]+b[i];//按位相加 
	}
	for(int i=0;i<lenc;i++){
		if(c[i]>9){
			c[i+1]++;//高位自增,进位
			c[i]-=10;//进位后原来那一位剩下的数 
		}
	}
	//c最高位进位 
	if(c[lenc]){
		lenc++;
	}
	while(c[lenc-1]==0){
		lenc--;
	}
}

int main(){
	cin>>t;
	lena=input(t,a);
	
	cin>>t;
	lenb=input(t,b);
	
	lenc=lena>lenb?lena:lenb;//三目运算符,条件?满足条件就执行:否则执行这个 
	add(a,b);
	
	//输出大整数 
	for(int i=lenc-1;i>=0;i--){
		cout<<c[i];
	}
	return 0; 
}

没加特判,0+0什么也不输出,加了特判才AC的
已经AC了但是想问问为什么0+0输出不了

另:GNU多精度算法库真是个好东西,Python自动高精度也是个好东西

2024/6/8 21:39
加载中...