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;
}