加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

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);
}

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有