Rust语言编程实例100题-028

吴单鹗
2023-12-01

Rust语言编程实例100题-028

题目:递归练习。程序调用自身的编程技巧称为递归( recursion)。递归做为一种算法在程序设计语言中广泛应用。 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。

有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?

程序分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道第四人的岁数,依次类推,推到第一人(10岁),再往回推。

输出格式:直接输出年龄即可。

知识点:递归

fn main() {
   let result = age(5);
    println!("{}", result);
}

fn age(n: i32) -> i32 {
    if n == 1 {
        return 10;
    }
    return age(n - 1) + 2;
}

程序执行结果:

18

Process finished with exit code 0
 类似资料: