欢迎来到 AI 中文社区(简称 AI 中文社),这里是学习交流 AI 人工智能技术的中文社区。 为了更好的体验,本站推荐使用 Chrome 浏览器。
全部教程·
Rust语言·
Rust编程100例
[目录]
·
第021题:猴子吃桃
Rust语言编程100例
第001题:数字组合
第002题:判断语句
第003题:循环语句
第004题:日期判断
第005题:数字排序
第006题:打印图案
第007题:输出特殊图案
第008题:乘法口诀
第009题:国际象棋
第010题:打印楼梯足球
第011题:兔子生崽
第012题:质数判断
第013题:水仙花数
第014题:分解因子
第015题:条件运算
第016题:最大公约数
第017题:统计字符
第018题:循环计算
第019题:完数计算
第020题:落球反弹
第021题:猴子吃桃
第022题:多重循环
第023题:打印菱形图案
第024题:分数求和
第025题:阶乘求和
第026题:递归练习
第027题:递归逆序
第028题:递归回推
第029题:整数分解
第030题:回文数
第031题:判断星期几
第032题:迭代器
第033题:质数判断
第034题:函数练习
第035题:字符串反转
第036题:查找素数
第037题:选择法排序
第038题:矩阵行列式
第039题:插入数组
第040题:数组逆序输出
第041题:static定义
第042题:冒泡排序
第043题:static修饰
第044题:static练习
第045题:希尔排序
第046题:匹配练习
第047题:unwrap
第048题:宏macro
第049题:Option用法
Rust语言编程100例
第001题:数字组合
第002题:判断语句
第003题:循环语句
第004题:日期判断
第005题:数字排序
第006题:打印图案
第007题:输出特殊图案
第008题:乘法口诀
第009题:国际象棋
第010题:打印楼梯足球
第011题:兔子生崽
第012题:质数判断
第013题:水仙花数
第014题:分解因子
第015题:条件运算
第016题:最大公约数
第017题:统计字符
第018题:循环计算
第019题:完数计算
第020题:落球反弹
第021题:猴子吃桃
第022题:多重循环
第023题:打印菱形图案
第024题:分数求和
第025题:阶乘求和
第026题:递归练习
第027题:递归逆序
第028题:递归回推
第029题:整数分解
第030题:回文数
第031题:判断星期几
第032题:迭代器
第033题:质数判断
第034题:函数练习
第035题:字符串反转
第036题:查找素数
第037题:选择法排序
第038题:矩阵行列式
第039题:插入数组
第040题:数组逆序输出
第041题:static定义
第042题:冒泡排序
第043题:static修饰
第044题:static练习
第045题:希尔排序
第046题:匹配练习
第047题:unwrap
第048题:宏macro
第049题:Option用法
Rust语言编程例子 第021题:猴子吃桃
Rust语言编程题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下,的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。请使用循环和递归两种方式解决此问题。
程序分析:采取逆向思维的方法,从后往前推断。
- 设x1为前一天桃子数,设x2为第二天桃子数, 则:
x2=x1/2-1, x1=(x2+1)*2
x3=x2/2-1, x2=(x3+1)*2
以此类推: x前=(x后+1)*2
- 从第10天可以类推到第1天,是一个循环过程。
输出格式:猴子第一天总共摘了 {}个桃子
知识点:循环 递归
1、循环解法:
// 总共吃了N天
const N: i32 = 10;
// 第N天早上剩余的数量
const COUNT: i32 = 1;
fn main() {
let mut i = N - 1;
let mut xn = COUNT;
while i > 0 {
xn = (xn + 1) * 2;
i -= 1;
}
println!("猴子第一天总共摘了 {} 个桃子", xn);
}
程序执行结果:
猴子第一天总共摘了 1534 个桃子 Process finished with exit code 0
2、递归解法:
// 总共吃了N天
const N: i32 = 10;
// 第N天早上剩余的数量
const COUNT: i32 = 1;
fn main() {
let pc = peach(1);
println!("猴子第一天总共摘了 {} 个桃子", pc);
}
/// 递归求解总共摘了多少桃子
/// 遇到第N天,则返回第N天剩余的数量
fn peach(day: i32) -> i32 {
if day == N {
return COUNT;
}
return (peach(day + 1) + 1) * 2;
}
程序执行结果:
猴子第一天总共摘了 1534 个桃子 Process finished with exit code 0
下一章:Rust语言编程例子 第022题:多重循环
Rust语言编程题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队 ...
AI 中文社