解题思路的重要性显现出来了 比如这个题 n个人肯定是要用数组 毋庸置疑 那么报数怎么实现呢 可以设置一个循环变量 让他从0开始循环 当等于3 的时候 就归零
还有 n个人 肯定需要很多圈报数 这个很多圈怎么实现 也是个问题 这些都是算法的相关问题
突然还有一个很感慨的事情 虽然高数课很久没上了 但是之前高数老师说的一句让我感受颇多 就是数学需要归纳总结 理解 我觉得这个对于很多科目都适用 不仅高数 c也可以 甚至是文科 比如这里需要循环很多圈 以后的另一个问题可能也会面临这个困难 怎么循环很多圈 还有就是报数怎么实现 都需要归纳总结 多思考
代码
int main()
{
cout << "一共有多少个人:?" << endl;
int n = 0;
cin >> n;
int num[50];
int* p = num;
for (int i = 0; i < n; i++)
{
*(p + i) = i + 1; //第几个人的编号就是几 从一开始
}
int i = 0; //用于总循环的变量
int k = 0; //k是按123报数时的计数变量 一个循环变量 在循环体中让这个数字变化 当变到3的时候就进行某些操作
int m = 0; //m是退出的人数 当m等于n-1时 结束 否则不知道什么时候推出
while (m < n - 1) //当m等于n-1时 就结束
{
if (*(p + i) != 0) k++; //如果这个人不是0 就是有效成员 k就加一 如果是0 那么就k就不变 下面的if语句就不会受到影响
if (k == 3)
{
*(p + i) = 0; //报到3的人调为0
k = 0; //从0开始重新报
m++; //退