Python和Java编程题(二)

题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

兔子的规律为数列1,1,2,3,5,8,13,21....

题目来源:http://blog.sina.com.cn/s/blog_60fafdda0100wb21.html

观察规律,可以发现,自从第三个月开始,每个月的兔子总数为前两个月兔子总数之和。

Java实现

 1 public class TestRabbit {// TestRabbit类
 2     public static void main(String args[]) {
 3         TestRabbit tb = new TestRabbit();
 4         int n=12;
 5         int Sum = tb.Calculate(n);// n代表第个月
 6         System.out.printf("第 %d个月的兔子总数为:%d",n,Sum);//格式化输出时使用printf
 7     }
 8
 9     /*
10      * 计算每个月的兔子总数
11      */
12     public int Calculate(int j) {
13         if(j==1) {
14             return 1;
15         }else if(j==2) {
16             return 1;
17         }else {
18             return Calculate(j-1)+Calculate(j-2);// 递归计算
19         }
20     }
21 }

Python实现

 1 # -*- coding: utf-8 -*-
 2
 3 def CalculateRabbit(n):#计算每个月的兔子总数
 4     if n == 1:
 5         return 1
 6     elif n == 2:
 7         return 1
 8     else:
 9         return CalculateRabbit(n-1) + CalculateRabbit(n-2)
10
11 if __name__ == ‘__main__‘:
12     N = 12
13     Sum = 0
14     Sum = CalculateRabbit(N)
15     print(‘第 %s 个月的兔子总数为: %s‘ % (N,Sum))

这道题主要是弄懂兔子成长规律,实现只需要递归计算即可

原文地址:https://www.cnblogs.com/xiang9286/p/9678026.html

时间: 2024-10-25 20:52:56

Python和Java编程题(二)的相关文章

Python和Java编程题(一)

今天偶尔看到一个博客有贴了五十个编程题,决定以后两天左右做一道题 题目来源:http://blog.sina.com.cn/s/blog_60fafdda0100wb21.html 1.题目 一个数如果恰好等于它的因子之和,这个数就称为"完数".例如6=1+2+3.编程 找出1000以内的所有完数. 2.Java实现 Java中的通过创建对象,再来调用方法解决问题思想还是不太熟练 1 public class ProfectNumber { 2 /* 3 * 定义计算数字的因子总和 4

Python和Java编程题(五)

题目:将一个正整数分解质因数.例如:输入90,打印出90=2*3*3*5. 程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可. (2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步. (3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步. 题目来源:http://blog.sina.com.cn/s/blog_60fafdda010

50道经典的JAVA编程题(目录)

50道经典的JAVA编程题(目录) 题目来源于:http://blog.sina.com.cn/s/blog_60fafdda0100wb21.html [程序1] TestRabbit.java 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21.... [程序2] FindPrimeNumber.java 题目:判断101-20

Java编程思想(二) —— 初始化与清理

(一)操作符一章的int类型数据溢出的问题在Java7的版本中仍然存在,而且溢出的结果千奇百怪. public class Hello { public static void main(String[] args) { int i = Integer.MAX_VALUE; System.out.println(i); System.out.println(i*4); System.out.println(i*5); } } 结果分别为2147483647,-4,2147483643. 当应用中

java编程题(一)

[程序1]    题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? //这是一个菲波拉契数列问题 public class lianxi01 { public static void main(String[] args) { System.out.println("第1个月的兔子对数:    1"); System.out.println("第2个月的兔子对数:    1&q

Java编程题每日一练day1

Day1共7题 package com.pcx.day1; /** * 设一个字符数组,对其元音字母进行统计 * a e i o u * @author Administrator * */ public class YuanYin { ????public static void main(String[] args) { ????????char [] chars={'a','b','c','d','e'}; ????????int count=0; ????????for (int i =

python 列表推导式 题二

补写list3被涂改的内容 结果如下: 1 list1 = ["1.Just do it", "2.一切皆有可能", "3.让编程改变世界", "Impossible is Nothing"] 2 list2 = ["4.阿迪达斯", "2.李宁", "3.python", "1.耐克"] 3 list3 = [name + ":&quo

[编程题]二维数组中的查找

在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 备注: 因为之前学的是java,js是刚学不久,所以今天这道题让我重新了认识了数组在js中的存在形式(下面这张图用来自己记忆js中数组的结构): 这道题的思路: 举例: [1,2,3,4] [3,5,7,9] 假设二维数组是arr[x][y],要判断的整数是target=4,从最后一行第一个数开始比较,a

java编程题 --分解质因数

package Solve; import java.util.Scanner; public class Solve { static Scanner scan = new Scanner(System.in); public static void main(String[] args) { System.out.println("请输入一个正整数:"); int num = scan.nextInt(); System.out.print(num + " = "