0+0怎么办
查看原帖
0+0怎么办
206424
氧化后的钙CaO楼主2021/8/2 16:24
#include<bits/stdc++.h>
using namespace std;
const int size = 256;
const int powten[8]{1,10,100,1000,10000,100000,1000000,10000000};
class bigInt{
	private:
		long long value[size];
	public:
		void add(bigInt num){
			for(int i=0;i<size-1;i++){
				this->value[i]+=num.value[i];
				this->value[i+1]+=this->value[i]/100000000;
				this->value[i]%=100000000;				
			}
			this->value[size-1]+=num.value[size-1];
			return;
		}
		void set(char* num){
			int len = strlen(num);
			int temp=0;
			for(int i=0;i<len;i++){
				temp=0;
				for(int j=0;j<8;j++){
					int length = strlen(num);
					if(!length)break;
					temp+=(num[length-1]-'0')*powten[j];
					num[length-1]='\0';
				}
				value[i]=temp;
			}
			return;
		}
		void puts(){
			int cur = size;
			while(!value[--cur]);
			printf("%lld",value[cur]);
			while(cur){
				printf("%08lld",value[--cur]);
			}
		}
}A,B;
int main(){
	char a[1000], b[1000];
	cin>>a>>b;
	A.set(a);
	B.set(b);
	A.add(B);
	A.puts();
}

只有0+0输出炸了,但是其他都能对。自测的话,0+0会出乱码,怎么破

2021/8/2 16:24
加载中...