A Fibonacci sequence is calculated by adding the previous two members of the sequence,with
the first two members being both 1.
f (1) = 1,f (2) = 1,f (n > 2) = f (n ? 1) + f (n ? 2)
Your task is to take a number as input,and print that fibonacci number.
PDSOJ 1048 Fibonacci Numbers(大数)
发布时间:2020-12-14 03:15:25 所属栏目:大数据 来源:网络整理
导读:Fibonacci Numbers 时间限制:? 1 Sec?? 内存限制:? 128 MB 提交:? 13?? 解决:? 2 [ 提交][ 状态][ 讨论版] 题目描述 A Fibonacci sequence is calculated by adding the previous two members of the sequence,with the first two members being both 1. f (
Fibonacci Numbers时间限制:?1 Sec?? 内存限制:?128 MB提交:?13?? 解决:?2 [ 提交][ 状态][ 讨论版] 题目描述输入100 输出354224848179261915075 样例输入100
样例输出354224848179261915075
提示No generated fibonacci number in excess of 1000 digits will be in the test data,i.e. f (20) = 6765 和大数加法类似,还要注意数据的变换s1,s2,sum之间的变换,sum=s1+s2.然后字符处理 #include<iostream>
#include<cstring>
using namespace std;
char sum[1200];
int s=0,m=0,n;
int main()
{
cin>>n;
string s1,s2;
int a[10000],b[10000];
int he,i;
s1="1";
s2="1";
for(m=2;m<n;m++)
{
memset(a,sizeof(a));
memset(b,sizeof(b));
a[0]=s1.length();
for(i=1;i<=a[0];i++)
{
a[i]=s1[a[0]-i]-'0';
}
b[0]=s2.length();
for(i=1;i<=b[0];i++)
{
b[i]=s2[b[0]-i]-'0';
}
he=(a[0]>b[0]?a[0]:b[0]);
for(i=1;i<=he;i++)
{
a[i]=a[i]+b[i];
a[i+1]=a[i+1]+a[i]/10;
a[i]=a[i]%10;
}
he++;
while((a[he]==0)&&(he>1))
he--;
for(i=he,s=0;i>=1;i--,s++)
{
sum[s]=a[i]+'0';
}
s1=s2;
s2=sum;
}
cout<<s2<<endl;
}
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
