点名游戏:输入一个学生群体的总数N,学生学号从1开始到N编号,老师从1开始点名,点到3的倍数、5的倍数的时候,跳过该名学生,求点名的次数。输入:一个正整数 N.如:10
输出:一个正整数,点名次数,如:5
代码如下:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n,i,k;
long long t = 0;
int cnt = 0;
int *p;
scanf("%d",&n);
p = (int*)malloc(sizeof(int)*(n+1));
for(i=1;i<=n;i++)
p[i] = 1;
k=n;
while(k != 1)
{
for(i=1;i<=n;i++)
{
if(p[i] == 1)
{
t++;
if(t%3==0 || t%5==0)
{
p[i] = 0;
k--;
}
}
}
cnt++;
}
printf("%d",cnt+1);
free(p);p = 0;
return 0;
}