求问大家
算法是对的亲测各种数据能过,0也输出空行了
为试各种输入判尾C都改到C++了
为什么还不对...
谢谢大家
#include "iostream"
#include "stdio.h"
using namespace std;
int fib[205][20]={0};
void add(int pos);
void print(int pos);
int main()
{
int T;
int i;
fib[0][0]=1;
fib[1][0]=1;
for(i=2;i<=200;i++)
add(i);
while(cin>>T)
{
if(T)
print(T);
else
printf("\n");
}
return 0;
}
void add(int pos)
{
int i;
int pls=0;
for(i=0;i<20;i++)
{
fib[pos][i]=fib[pos-1][i]+fib[pos-2][i]+pls;
if(fib[pos][i]>=10000)
{
fib[pos][i]-=10000;
pls=1;
}
else
pls=0;
}
}
void print(int pos)
{
int i=19;
while(!fib[pos][i])
i--;
printf("%d",fib[pos][i--]);
for(;i>=0;i--)
{
if(fib[pos][i]>=1000)
printf("%d",fib[pos][i--]);
else
if(fib[pos][i]>=100)
printf("0%d",fib[pos][i--]);
else
if(fib[pos][i]>=10)
printf("00%d",fib[pos][i--]);
else
if(fib[pos][i--]>=1)
printf("000%d",fib[pos][i]);
else
printf("0000");
}
printf("\n");
}