您的位置:首页 > 其它

1168 Fibonacci数列

2012-07-06 10:27 176 查看
描述
已知Fibonacci数列

F1=1,

F2=1,

F3=2,

F4=3,

F5=5,

...

Fx=Fx-1+Fx-2

求Fibonacci数列的各项中末尾恰好有k个0的第m项。比如末尾恰好有1个0的第1项就是F15=610,而末尾恰好有2个0的第2项则是

F300=222232244629420445529739893461909967206666939096499764990979600,

我们只需要这一项的下标。
输入
输入包含多组数据。

第一行为数据的组数x(0<x<=20),接下来每组数据一行。

每组数据包括两个整数k和m,用一个空格隔开,输入保证输出结果小于231。
输出
每组数据输出一行,为Fibonacci数列中末尾恰好有k个0的第m项的下标。
 
样例输入3

1 1

2 2

2 5 样例输出15

300

900此题通过找规律求解

#include <stdio.h>

int main()
{
int n, t;
int i, j;
int m, sum;
int k,kk;
scanf("%d", &t);
while(t --)
{
scanf("%d%d", &n, &m);
k = 1;
kk;
for(i = 1; i < n; i ++)
{
k *= 10;
}
k *= 15;
if(m < 10 && n == 1)
{
sum = 15*m;
}
else
{
if(n == 1)
{
sum = 15 * m;
sum += (15*((m - 1)/9));
}
else
{
if(n == 2)
{
sum = k*m;
sum += (k*((m - 1)/4));
}
else
{
k = k /2;
sum = k* m;
sum += (k*((m - 1)/9));
}
}
}
printf("%d\n", sum);
}
return 0;
}


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: