问题QIJ100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
妈妈给了桐桐一盒糖果,第一天桐桐分糖果的一半给弟弟,自己吃了5颗;第二天有好朋友悦悦来家里玩,桐桐又把剩下的糖果分一半给悦悦,自己吃了4颗;第三天桐桐吃了剩下的糖果的一半还多1颗后,数了数发现她剩下的糖果数量刚好是她今年的岁数。你能算出妈妈一共给了桐桐多少颗糖果吗?QIJ100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
问题分析QIJ100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
输入:输入一个整数表示桐桐年龄,即第三天吃完糖果后剩余的糖果数。QIJ100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
输出:一个整数,表示妈妈给桐桐的糖果总数。QIJ100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
这是一个非常有趣的数学计算题,我们可以使用倒推法来解决。图5.3(a)表示第三天吃糖果的情况。假如第三天吃糖果之前桐桐手里的糖果数为x3,吃完糖果后剩余的糖果数是n,则:,因此第三天吃糖果之前桐桐手里的糖果数为x3=(n+1)*2。QIJ100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
QIJ100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
x3即为第二天分完、吃完糖果后剩余的糖果数。图5.3(b)表示第二天吃糖果的情况。若第二天开始时的糖果数为x2,则:,因此第二天开始时的糖果数为x2=(x3+4)*2。QIJ100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
以此类推,第一天开始时妈妈给桐桐的糖果总数为x1=(x2+5)*2。QIJ100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
QIJ100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
算法描述QIJ100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
自然语言描述QIJ100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
(1)定义变量x1、x2、x3分别表示第1天、第2天和第3天的糖果数、n表示桐桐的年龄;QIJ100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
(2)用scanf()输入n的值;QIJ100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
(3)计算x3的值;QIJ100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
(4)计算x2的值;QIJ100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
(5)计算x1的值;QIJ100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
(6)用printf()输出x1的值。QIJ100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
C语言程序源代码QIJ100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
QIJ100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库