2301_80288461 2023-10-30 11:31 采纳率: 0%
浏览 431

c语言PTA编程队列报数

c语言编程题
同学们正在练习列队,从第一个人开始按编号1、2、…、n(0<n<1000)报数,开始所有人都是面向前方,第一遍报数是a的倍数的同学执行一遍向后转命令,第二遍报数是b的倍数的同学执行一遍向后转命令,第三遍报数是c的倍数的同学执行一遍向后转命令,其中a、b、c是大于0小于1000的整数。第二和第三遍报数时需要考虑已经向后转的同学再向前转的情况,输入人数n、a、b、c,按顺序输出最终仍然面向前方的同学的编号。

输入格式:
输入4个正整数n、a、b、c。

输出格式:
在一行中输出一个整数列,以空格间隔。

输入样例:
在这里给出一组输入。例如:

10 3 4 5
输出样例:
在这里给出相应的输出。例如:

1 2 7

  • 写回答

3条回答 默认 最新

  • 柯本 2023-10-30 14:14
    关注

    程序参考

    
    #include <stdio.h>
    int s[1001];
    int main()
    {
      int n, a, b, c ,i;
      scanf("%d%d%d%d", &n, &a, &b, &c);
      for (i = 1; i <= n; i++)
        if (i % a == 0)
          s[i] = !s[i];
      for (i = 1; i <= n; i++)
        if (i % b == 0)
          s[i] = !s[i];
      for (i = 1; i <= n; i++)
        if (i % c == 0)
          s[i] = !s[i];
      for (i = 1; i <= n; i++)
        if (s[i] == 0)
          printf("%d ", i);
      printf("\n");
      return 0;
    }
    

    例样测试

    img

    评论

报告相同问题?

问题事件

  • 请提交代码 11月18日
  • 创建了问题 10月30日