C语言 有17个人围成一圈(编号为1~17),从第1号开始进行1,2,3报数...
(2012-03-21 10:10:18)
标签:
杂谈 |
分类: c语言 |
//有17个人围成一圈(编号为1~17),从第1号开始进行1,2,3报数,凡报3者就退出,下一个人从1开始报数...直到最后只剩下一个人时为止
//请问此人原来的位置是多少号?
//解题思路:如果到三,就把其值等于0,最后又16个等于0 结束循环。利用j来数1,2,3。
//count来计数0的个数。当i到18时就该重新循环,再从1开始。而等于0的数组不会被数进1,2,3中。
int a[18],i,j=0,count=0;
for(i=1;i<=17;i++)
a[i]=i;
i=1;
while(count<16)
{
if(a[i]!=0) j++;
if(j==3)
{
a[i]=0;
count++;
j=0;
}
i++;
if(i==18) i=1;
}
for(i=1;i<=17;i++)
{
if(a[i]!=0)
printf("%d",i);
}
前一篇:C语言 杨辉三角
后一篇:C语言 设计选择排序