一、母牛的故事
时间限制: 1Sec 内存限制: 128MB
题目描述
有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?
输入
输入数据由多个测试实例组成,每个测试实例占一行,包括一个整数n(0<n<55),n的含义如题目中描述。
n=0表示输入数据的结束,不做处理。
输出
对于每个测试实例,输出在第n年的时候母牛的数量。
每个输出占一行。
样例输入
2
4
5
0
样例输出
2
4
6
思路:找规律
第一年 1
二 2
三 3
四 4
五 6
六 9
四年初 小母牛就开始每年生一个 按三四五年左右的找下规律
4=3+1
6=4+2
9=6+3
即f(n)=f(n-1)+f(n-3)
当年牛的数量 是在上一年的基础上 加上可以生育的牛的数量
package day1;
import java.util.Scanner;
/**
* 有一头母牛,它每年年初生一头小母牛。
* 每头小母牛从第四个年头开始,每年年初也生一头小母牛。
* 请编程实现在第n年的时候,共有多少头母牛?
* */
public class q1004 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
while(n!=0){
int []num={1,2,3};
if(n<=3){
System.out.println(num[n-1]);
}else{
int res=0;
int i=3;
while(i<n){
res=num[0]+num[2];
num[0]=num[1];
num[1]=num[2];
num[2]=res;
i++;
// System.out.println(num[0]+"~"+num[1]+"~"+num[2]+"~");
}
System.out.println(res);
}
n=sc.nextInt();
}
}
}
二、用筛法求之N内的素数。
时间限制: 1Sec 内存限制: 64MB
题目描述
用筛法求之N内的素数。
输入
N
输出
0~N的素数
样例输入
100
样例输出
2
3
5
7
11
13
17
19
23
29
31
37
41
43
47
53
59
61
67
71
73
79
83
89
97
思路:介绍在这里(维基百科)emmm…很简单的一个题,我竟然浪费了很长时间
package day1;
import java.util.Scanner;
public class q1084 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int []num=new int[n+1];
// for(int i=0;i<=n;i++){
// num[i]=i;
// }
int tmp=2;
int t=3;
while(tmp<=n){
while(t<=n){
if(t%tmp==0&&num[t]!=1){
num[t]=1;
}
t++;
}
// for(int i=0;i<=n;i++){
// System.out.print(num[i]+ " ");
// }
// System.out.println("~~~~~~"+tmp);
tmp+=1;
while(tmp+1<n&&num[tmp]==1){
tmp++;
}
t=tmp+1;
}
for(int i=2;i<=n;i++){
if(num[i]!=1){
System.out.println(i);
}
}
}
}