1.题目描述
NowCoder开了一家早餐店,这家店的客人都有个奇怪的癖好:他们只要来这家店吃过一次早餐,就会每天都过来;并且,所有人在这家店吃了两天早餐后,接下来每天都会带一位新朋友一起来品尝。
于是,这家店的客人从最初一个人发展成浩浩荡荡成百上千人:1、1、2、3、5……
现在,NowCoder想请你帮忙统计一下,某一段时间范围那他总共卖出多少份早餐(假设每位客人只吃一份早餐)。
2.输入描述:
测试数据包括多组。
每组数据包含两个整数from和to(1≤from≤to≤80),分别代表开店的第from天和第to天。
3.输出描述:
对应每一组输入,输出从from到to这些天里(包含from和to两天),需要做多少份早餐。
4.输入例子:
1 102 836 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;}