大家帮忙看下,为什么用高精度不会输出?
查看原帖
大家帮忙看下,为什么用高精度不会输出?
741022
B2214shengmin楼主2022/6/28 22:03
#include<bits/stdc++.h>
using namespace std;
int int1[1010],c[1010],len_;
char str1[1010];
/*int fbnqsl(int x){
	if(x==1)return 1;
	else if(x==2)return 2;
	else return fbnqsl(x-1)+fbnqsl(x-2);
}*/
void init(char a[],int *b){
	int l=strlen(a);
	for(int i=0;i<l;i++){
		b[i]=a[l-i-1]-'0'; 
	}
}
void sum_hp(char a[],char k){//a+b 顺加输出 
	init(a,int1);//把a字符串传入init,转化成int1数组 
	memset(c,0,sizeof(c));//c数组清零
	int i,l=strlen(a);//l为a字符串的长度
	for(i=0;i<l;i++){//a+k 
		c[i]+=int1[i]+k;
		if(c[i]>9){//判断是否要进位 
			c[i]-=10;//把个位留下来 
			c[i+1]++;//进位 
		}
	}
	if(c[i]>0){
		len_=l;
	}else{//从l-1位输出 
		len_=l-1;
	}
}
int main() {
	int q=3;
	cin>>str1;
	memset(int1,0,sizeof(int1));
	if(str1=="1"){
		cout<<1;
		return 0;
	}else if(str1=="2"){
		cout<<2;
		return 0;
	}
	for(int i=3;i<=q;i++){
		sum_hp(str1,q);
		q++;
		//cout<<endl;
	}
	for(int i=len_;i>=0;i++)cout<<c[i]; 
    return 0;
} 
2022/6/28 22:03
加载中...