C++编程小题:落球反弹与报数问题解码

5星 · 超过95%的资源 需积分: 9 8 下载量 134 浏览量 更新于2024-09-17 收藏 206KB DOC 举报
这段内容主要涉及三个C++编程小题目,我们将逐一分析每个问题及其解决方法: 1. 球的弹跳问题: 这个小题目描述了一颗球从100米高度自由落下,每次落地后反跳回原高度的一半,然后再次落下。问题是求球在第10次落地时总共经过的距离以及第10次反弹的高度。通过编写C++代码,我们使用for循环来模拟这个过程。`height`变量存储每次下落后的高度,`sum_height`则累加每次落地时球移动的总距离(每次下落加一次下落距离,每次反弹加一次反弹距离)。在第10次循环中,球反弹的高度为`height = height / 2`,因为每次只反弹原高度的一半。程序最后输出总距离和第10次反弹的高度。 2. 报数淘汰游戏: 这个问题是关于一个环形队伍中,从第一个人开始报数,报到3的人离开队伍,找出最后剩下的那个人原来的编号。通过`M=3`常量表示报数周期,利用取模运算`(ind + M) % i`跟踪剩余人员的位置。当`ind`等于0时,说明已经完成一轮报数,将`i`赋值给`ind`,代表新的位置。当用户输入0时,跳出循环。程序最终输出最后留下的队员原来的编号。 3. 判断5位回文数: 回文数是指正序读和倒序读都一样的数,例如12321。题目要求输入一个5位数,通过`palindrome()`函数检查其是否为回文。首先,将输入的数字反转,然后与原数进行比较。如果反转后的数字与原数相等,则是回文数。例如,对于输入12345,反转后为54321,因为不相等,所以判断为非回文数。程序通过条件语句实现判断并输出结果。 这些题目涵盖了基本的循环结构、条件判断和数值处理,对于初学者来说是很好的C++实践案例,可以帮助理解程序逻辑和控制结构的应用。