300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 【oJ】客似云来

【oJ】客似云来

时间:2018-09-28 22:54:57

相关推荐

【oJ】客似云来

牛客网址

题目描述

NowCoder开了一家早餐店,这家店的客人都有个奇怪的癖好:他们只要来这家店吃过一次早餐,就会每天都过来;并且,所有人在这家店吃了两天早餐后,接下来每天都会带一位新朋友一起来品尝。

于是,这家店的客人从最初一个人发展成浩浩荡荡成百上千人:1、1、2、3、5……

现在,NowCoder想请你帮忙统计一下,某一段时间范围那他总共卖出多少份早餐(假设每位客人只吃一份早餐)

输入

测试数据包括多组。

每组数据包含两个整数from和to(1≤from≤to≤80),分别代表开店的第from天和第to天。

输出

对应每一组输入,输出从from到to这些天里(包含from和to两天),需要做多少份早餐。

思路

第一天客人数:1;第二天客人数:1;第三天客人数:2;第四天客人数:3;由题目观察出:客人的数量成一个斐波那切数列,即一个数等于前两个数之和(fib[i]=fib[i-1]+fib[i-2](i>2))

由于输入两个整数from和to(1≤from≤to≤80),所以可以先创建一个数组(下标为1(第一天),斐那切数:1(第二天);下标为2,菲波那切数:1,…,下标为80,菲波那切数列:第80天,所以80个下标,应创建长度为81数组),把【1,80】的斐波那契数存放在数组中**【切记数组类型必须创建为long】,然后再遍历数组【from,to】,获取这个阶段的斐波那契数,切记,总数也应用long**

第一个是要用大数表示(long),32位的数表示不了~

切记创建81打下的数组

代码

import java.util.Scanner;public class MainFIb {public static void main(String[] args){Scanner sc =new Scanner(System.in);while(sc.hasNextInt()){int from=sc.nextInt();int to=sc.nextInt();sum(from,to);}}public static void sum(int from ,int to){long result=0;long[] fib=new long[81];for(int i=3;i<=80;i++){fib[0]=0;fib[1]=1;fib[2]=1;fib[i]=fib[i-1]+fib[i-2];}for(int i=from;i<=to;i++){result+=fib[i];}System.out.println(result);}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。
相关阅读
客似云来(PAT)

客似云来(PAT)

2024-04-17

剪花布条 客似云来

剪花布条 客似云来

2022-11-08

客似云来java

客似云来java

2022-09-13

剪花布条  客似云来

剪花布条 客似云来

2021-03-01