30分求助
查看原帖
30分求助
734100
JNTM114514楼主2022/8/19 21:38
#include <iostream>
using namespace std;
#define K 10
struct BigInt{
	int num[10000];
	int n;
}; 
void Output(BigInt &x){
	for(int i=x.n-1; i>=0; i--)
		cout<<x.num[i];
	cout<<endl;	
}
void Mul(BigInt &x, int y){
	int i, jw=0;
	for(i=0; i<x.n; i++)
	{
		x.num[i] = x.num[i]*y+jw;
		jw       = x.num[i] / K; 
		x.num[i] = x.num[i] % K;
	}
	while(jw>0)	{
		x.num[i] = jw%K; i++;
		jw = jw / K;
	}
	x.n = i;
}
void Add(BigInt &x1,BigInt &x2, BigInt &x3){
	int i, jw=0;
	for(i=0; i<x1.n && i<x2.n; i++)	{
		x3.num[i] = x1.num[i] + x2.num[i] + jw;
		jw        = x3.num[i] / K;	x3.num[i] = x3.num[i] % K;
	}
	for(; i<x1.n; i++)	{
		x3.num[i] = x1.num[i] + jw;
		jw        = x3.num[i] / K;	x3.num[i] = x3.num[i] % K;
	}
	for(; i<x2.n; i++)	{
		x3.num[i] = x2.num[i] + jw;
		jw        = x3.num[i] / K;	x3.num[i] = x3.num[i] % K;
	}
	if(jw>0)	{
		 x3.num[i] = jw;  i++;
	}
	x3.n = i;
}
int main(){
	BigInt x1;	x1.num[0]=1; x1.n=1;
	BigInt x2;	x2.num[0]=1; x2.n=1;
	BigInt x3;
	int n;
	cin>>n;
	if(n==1||n==2){
		cout<<1;
		return 0;
	}
	for(int i=0;i<n-2;i++){
		Add(x1,x2,x3);
		x1=x2;
		x2=x3;
	}
	Output(x3);
	return 0;
}
2022/8/19 21:38
加载中...