java例题_23 递归求年龄

 1 /*23 【程序 23 求岁数】
 2 题目:有 5 个人坐在一起,问第五个人多少岁,他说比第 4 个人大 2 岁。问第 4 个人岁数,他说比第 3 个
 3 人大 2 岁。问第三个人,又说比第 2 人大两岁。问第 2 个人,说比第一个人大两岁。最后问第一个人,他
 4 说是 10 岁。请问第五个人多大?
 5 */
 6
 7 /*分析
 8  *除第一个人外,每个人都比前面那个人大2岁,用递归算法
 9  *x2=x1+2,x3=x2+2,x4=x3+2,x5=x4+2;x1=10
10  * */
11
12
13 package homework;
14
15 public class _23 {
16
17     public static void main(String[] args) {
18         // 第一个人10岁,共5人
19         int years=10;
20         int x=5;
21         System.out.println("第"+x+"个人的年龄为:"+NianLing(years, x)+"岁");
22     }
23     public static int NianLing(int y,int x) {
24         if(x==1) {
25             return y;
26         }
27         else {
28             x--;
29             return NianLing(y, x)+2;
30         }
31     }
32
33 }

原文地址:https://www.cnblogs.com/scwyqin/p/12307259.html

时间: 2024-11-07 15:36:58

java例题_23 递归求年龄的相关文章

递归学习(一)最简单的C语言递归求年龄算法

递归是我们在学习编程中,必须要去学习的,虽然递归晦涩难懂 ,但是很多时候,递归的思想会很有用,但是在实际开发中,不建议使用递归,要用循环来代替递归,不然bug无穷. ----------------------------------------------------------- 问题描述: 有5个人坐在一起, 问第5个人,他说比第4个人大2岁, 问第4个人,他说比第3个人大2岁, 问第3个人,他说比第2个人大2岁, 问第2个人,他说比第1个人大2岁, 问最后一个人,他说10岁 第5个人多大

Python练习笔记——利用递归求年龄,第五个比第四个大2岁...

现在有五个人, 第五个人比第四个人大两岁,18 第四个人比第三个人大两岁,16 第三个人比第二个人大两岁,14 第二个人比第一个人大两岁,12 第一个人现10岁,                 10 第五个人的年龄是多大(采用递归函数计算) def age(n): # n 表示第几个人 if n == 1: return 10 return 2 + age(n-1) print(age(5)) 输出:18

java例题_22 用递归求阶乘 5!

1 /*22 [程序 22 递归求阶乘] 2 题目:利用递归方法求 5!. 3 程序分析:递归公式:fn!=fn*4! 4 */ 5 6 /*分析 7 * 递归:如果其中每一步都要用到前一步或前几步的结果,称为递归的 8 * 根据提示,可以用算法x!=x*(x-1)!;y=x-1,y!=y*(y-1)!;... 9 * 10 * */ 11 12 13 package homework; 14 15 public class _22 { 16 17 public static void main

递归求文件内文件个数 java

递归求取文件夹内文件的个数.判断文件是否是目录,如果是继续遍历,如果不是则求文件个数. public static long getlist(File f){//递归求取目录文件个数 long size = 0; File flist[] = f.listFiles(); size=flist.length; for (int i = 0; i < flist.length; i++) { if (flist[i].isDirectory()) { size = size + getlist(f

利用递归求阶乘

1 package com.d; 2 3 import java.util.Scanner; 4 5 public class Digui { 6 7 public static void main(String[] args) { 8 Digui d = new Digui(); 9 10 System.out.println("请输入一个整数"); 11 Scanner scan = new Scanner(System.in); 12 int a = scan.nextInt()

蓝桥杯 算法训练 ALGO-151 6-2递归求二进制表示位数

算法训练 6-2递归求二进制表示位数 时间限制:10.0s   内存限制:256.0MB 问题描述 给定一个十进制整数,返回其对应的二进制数的位数.例如,输入十进制数9,其对应的二进制数是1001,因此位数是4. 样例输入 一个满足题目要求的输入范例.9 样例输出 与上面的样例输入对应的输出. 数据规模和约定 输入数据中每一个数的范围. 例:输入在int表示范围内. 题目解析: 在 Java 的 Integer 类的方法中,有将十进制数转换为二进制.八进制和十六进制的三个方法.若参数为正整数,则

蓝桥杯 算法训练 ALGO-150 6-1 递归求二项式系数值

算法训练 6-1 递归求二项式系数值 时间限制:10.0s   内存限制:256.0MB 问题描述 样例输入 一个满足题目要求的输入范例.3 10 样例输出 与上面的样例输入对应的输出. 数据规模和约定 输入数据中每一个数的范围. 例:结果在int表示时不会溢出. 题目解析: 对于递归问题,我们注意两点:(1)找出口:(2)找相似性. 有题目中我们得知: (1)出口已经找到: 当 k = 0 或 k = n 时,结果为 1. (2)相似性也找到了:当 0 < k < n 时,递归调用  示例代

递归求最大公约数

  import java.io.IOException; import java.util.Scanner; public class CommonDivisor { public static void main(String[] args)throws IOException{ try{ System.out.println("请输入两个整数!"); Scanner input = new Scanner(System.in); int x = input.nextInt();

用递归求分数的和

import java.io.IOException; import java.util.Scanner; public class Sum { public static void main(String[] args) throws IOException { try { System.out.println("请输入的i的值!"); Scanner input = new Scanner(System.in); int i = input.nextInt(); System.ou