写了高精度之后只有20分????求大佬指出错误,谢谢谢谢
查看原帖
写了高精度之后只有20分????求大佬指出错误,谢谢谢谢
181715
gjh303987897楼主2021/10/5 11:38
#include<iostream>
#include<cstdio>
#include<cstring>
#include<string.h>
#include<algorithm> 
#define maxn 5050
using namespace std;
int f[maxn][1010];//f[i][k]=f[i-1][k]+f[i-2][k];i用来做递推,k作为高精度储存 
int n,len=1;
void do_high(int ch){
	for(int i=1;i<=len;i++){
		f[i][len]=f[i-1][len]+f[i-2][len];
		if(f[i][len]>=10){
			len++;
			f[i][len]=1; f[i][len-1]%=10;
		}
	}
}
int main()
{
	cin>>n;
	f[1][1]=1;f[2][1]=2;f[3][1]=3;f[4][1]=5;//8
	for(int i=5;i<=n;i++){
		do_high(i);
	}
	while(f[n][len]==0&&len>1) len--;
	for(int i=len;i>=1;i--) printf("%d",f[n][i]);
	return 0;
}
2021/10/5 11:38
加载中...