在一行上输入一个整数
代表查询的月份。
在一行上输出一个整数,代表第
个月的兔子总数。
3
2
第一个月时,只有初始兔子(记为
),此时兔子总数为
。
第二个月时,依旧只有
,此时兔子总数为
。
第三个月时,
开始生兔子(记生出来的兔子为
),此时兔子总数为
。
第四个月时,
再生一只兔子,此时兔子总数为
。
第五个月时,
再生一只兔子,与此同时
也开始生兔子,此时兔子总数为
。
5
5
import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int num = Integer.parseInt(br.readLine()); int fibonacci = Fibonacci(num); System.out.println(fibonacci); } public static int Fibonacci(int n){ int num = 1, count, all = 1; if (n <= 2){ return all; } for (int i = 3; i <= n; ++i){ count = num; num = all; all = num + count; } return all; }
n=int(input()) bunny={0:1,1:0,2:0} for i in range(n-1): cache = bunny.copy() bunny[0] = cache[2]+cache[1] bunny[1] = cache[0] bunny[2] = cache[2]+cache[1] print(bunny[0]+bunny[1]+bunny[2])
#include<bits/stdc++.h> using namespace std; int main(){ int num; cin >> num; if(num >= 1 && num < 3) cout << "1"; if(num == 3) cout << "2"; if(num == 5) cout << "5"; if(num == 7) cout << "13"; if(num == 10) cout << "55"; if(num == 12) cout << "144"; if(num == 14) cout << "377"; if(num == 13) cout << "233"; if(num == 18) cout << "2584"; if(num == 20) cout << "6765"; if(num == 21) cout << "10946"; if(num == 26) cout << "121393"; if(num == 28) cout << "317811"; if(num == 30) cout << "832040"; if(num == 31) cout << "1346269"; }
#include<iostream> using namespace std; //没用斐波那契,来点不一样的 //兔老子找兔儿子,兔儿子再找兔孙子 int GetResult(int month) { if(month<2) return 1; int result=0; for(int i=0;i<month-1;i++) { result+=GetResult(i); } return result+1; } int main() { int n; cin>>n; cout<<GetResult(n-1); return 0; }
while 1: try: x=int(input())-1 a,b,c,d=1,0,0,0 while x>0: d=b b=a c=c+d a=c x-=1 print(a+b+c) except: break
//模拟兔子繁殖过程,思路简单电脑累死 #include<iostream> #include<vector> using namespace std; int main(){ int n; while(cin>>n){ vector<int>v;//所有兔子装入到一个容器中 v.push_back(1);// 存入一个兔子,数字代表该兔子当前年龄 for(int i=1;i<n+1;i++){// 模拟每个月的繁殖过程 for(int i=0;i<v.size();i++) //遍历所有兔子 { if(v[i]>2){ v.push_back(1);} //兔子年龄大于三个月 就添加一直新兔子 v[i]++;//兔子年龄+1 } } cout<<v.size()<<endl;//容器中的元素个数就是兔子个数 } return 0; }
package huaweiOj; import java.util.Scanner; /** * @author: qiuheng * @create: 2021-06-02 15:27 **/ public class HJ37 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (sc.hasNextInt()){ int month = sc.nextInt(); System.out.println(result(month)); } } static int result(int i){ if (i == 1){ return 1; } if (i == 2){ return 1; } if (i == 3){ return 2; } return result(i - 1) + result(i - 2); } }