救济金发放

#include<stdio.h> int n, k, m, arr[25]; int select(int s, int rec, int count) { while (count--) { if(rec == 1) { //每次都要从本身开始,所以第一次循环是开始处的人,因为数组中1~10的值是1~10,所以对10取模应该从得到的数应该从得到数的上一个+1 do { s = (n + s+rec-1) % 10 + 1; } while (arr[s] == 0); } if(rec == -1) do { s = (n + s-2) % 10+1; } while (arr[s] == 0); } return s; } int main(void) { scanf("%d %d %d", &n, &k, &m); int s1, s2; s1 = n; s2 = 1; int left = n; for (int i = 1; i <= n; i++) arr[i] = i; while (left) { s1 = select(s1, 1, k); s2 = select(s2, -1, m); printf("%3d", s1); left--; if(arr[s1]!=arr[s2]) { printf("%3d", s2); left--; } arr[s1] = 0; arr[s2] = 0; if(left) printf(","); } printf("\n"); }
计算机小白记录学习过程,喜欢就点个推荐和关注吧O(∩_∩)O哈哈~

浙公网安备 33010602011771号