客似云来(PAT)
1.题目描述
NowCoder开了一家早餐店,这家店的客人都有个奇怪的癖好:他们只要来这家店吃过一次早餐,就会每天都过来;并且,所有人在这家店吃了两天早餐后,接下来每天都会带一位新朋友一起来品尝。
于是,这家店的客人从最初一个人发展成浩浩荡荡成百上千人:1、1、2、3、5……
现在,NowCoder想请你帮忙统计一下,某一段时间范围那他总共卖出多少份早餐(假设每位客人只吃一份早餐)。
2.输入描述:
测试数据包括多组。
每组数据包含两个整数from和to(1≤from≤to≤80),分别代表开店的第from天和第to天。
3.输出描述:
对应每一组输入,输出从from到to这些天里(包含from和to两天),需要做多少份早餐。
4.输入例子:
1 10
2 8
36 80
5.解题思路
由题意得每天人数的增长为斐波那契数列,每位吃一份早餐,所以总共卖出的早餐数量也就是斐波那契数列的前n项和
6.源代码:
#include<stdio.h>
int main()
{
int i,from,to;
long long num[81];
num[0]=0;
num[1]=1;
num[2]=1;
while(scanf("%d %d",&from,&to)!=-1)
{
long long sum=0;
for(i=3;i<=to;i++)
num[i]=num[i-1]+num[i-2];
for(i=from;i<=to;i++)
sum+=num[i];
printf("%lld\n",sum);
}
return 0;
}