*~题目:客似云来
题目描述:
NowCoder开了一家早餐店,这家店的客人都有个奇怪的癖好:他们只要来这家店吃过一次早餐,就会每天都过来;并且,所有人在这家店吃了两天早餐后,接下来每天都会带一位新朋友一起来品尝。
于是,这家店的客人从最初一个人发展成浩浩荡荡成百上千人:1、1、2、3、5……
现在,NowCoder想请你帮忙统计一下,某一段时间范围那他总共卖出多少份早餐(假设每位客人只吃一份早餐)。输入描述: 测试数据包括多组。 每组数据包含两个整数from和to(1≤from≤to≤80),分别代表开店的第from天和第to天。
输出描述: 对应每一组输入,输出从from到to这些天里(包含from和to两天),需要做多少份早餐。
题解:
import java.util.*;
public class Main{
public static void main(String[] args){
long[] fib=new long[80];
fib[0]=1;
fib[1]=1;
for(int i=2;i<80;i++){
fib[i]=fib[i-1]+fib[i-2];
}
Scanner scan=new Scanner(System.in);
while(scan.hasNext()){
int from=scan.nextInt();
int to=scan.nextInt();
long count=0;
for(int i=from-1;i<=to-1;i++){
count+=fib[i];
}
System.out.println(count);
}
}
}
*~题目: 剪花布条
一块花布条,里面有图案,另外有一块直接可用的小饰条,里面也有一些图案。对于这个给定的花布条和小饰条,计算一下能从花布条中能剪出几块小饰条来呢?
输入描述:
输入包含多组数据。
每组数据包含两个字符串s,t,分别是成对出现的花布条和小饰条,其布条都是用可见ASCII字符表示的,可见的ASCII字符有多少个,布条的花纹也有多少种花样。花纹条和小饰条不会超过1000个字符长。输出描述: 对应每组输入,输出能从花纹布中剪出的最多小饰条个数,如果一块都没有,那就输出0,每个结果占一行。
题解:
s = “花布条”,t = “小饰条”
在S中找到第一个出现的t,把t切掉
在剩下的花布条中,继续找可以切多少个t
1.s中一个t都没有。 ans=0
2.S中只有一-个t。 ans=1
3.如果s中有k个t,正确。证明k + 1个t也正确
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner scan=new Scanner(System.in);
while(scan.hasNext()){
String s=scan.next();
String t=scan.next();
int ans=cut(s,t);
System.out.println(ans);
}
}
public static int cut(String s,String t){
int i=s.indexOf(t);
if(i==-1){
return 0;
}
return 1+cut(s.substring(i+t.length()),t);
}
}