碰到的C语言的关于循环取数的方法
2016-02-17 16:15
302 查看
碰到的小问题
问题如下:
耶稣有15个门徒,其中有一个就是出卖耶稣叛徒,请用排除法找出这位叛徒:15人围坐一圈,从第一个开始报号:1,2,3,1,2,3……,凡是报到“3”就退出圈子,最后留在圈内的人就是出卖耶稣的叛徒,请找出它原来的序号。
看下这个方法:
#include "stdio.h"
void main()
{
inta[15]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
int number = 15;//人数
int count =0;//1,2,3报数
int i = 0;
while (number >1)
{
if (a[i] != 0)
{
count++;//开始报数
}
if (count == 3)
{
a[i] = 0;//后面循环剔除
count =0;//重新1,2,3报数
number--;
}
i++;
if (i == 15)
{
i = 0;
}
}
for ( i = 0; i <15; i++) {
if (a[i] != 0|| a[i] > 0) {
printf("出卖耶稣的是:%d", a[i]);
}
}
}
看了好多实现方法,就这个比较好一点,很符合我的一般思路,很好理解吧!
问题如下:
耶稣有15个门徒,其中有一个就是出卖耶稣叛徒,请用排除法找出这位叛徒:15人围坐一圈,从第一个开始报号:1,2,3,1,2,3……,凡是报到“3”就退出圈子,最后留在圈内的人就是出卖耶稣的叛徒,请找出它原来的序号。
看下这个方法:
#include "stdio.h"
void main()
{
inta[15]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
int number = 15;//人数
int count =0;//1,2,3报数
int i = 0;
while (number >1)
{
if (a[i] != 0)
{
count++;//开始报数
}
if (count == 3)
{
a[i] = 0;//后面循环剔除
count =0;//重新1,2,3报数
number--;
}
i++;
if (i == 15)
{
i = 0;
}
}
for ( i = 0; i <15; i++) {
if (a[i] != 0|| a[i] > 0) {
printf("出卖耶稣的是:%d", a[i]);
}
}
}
看了好多实现方法,就这个比较好一点,很符合我的一般思路,很好理解吧!
相关文章推荐
- 关于C语言加密的算法
- C++ 模板元中巧用异常让字符串储存在指定类型的tuple中
- 自己用C++写的图像处理软件试用版下载
- c++ 惯用法:定界加锁
- C语言 预处理一(文件包含--#include)
- C++简单实现对象引用计数示例
- 从头再来,C++学习笔记。-01(初窥C++)
- 递归字符串C++编程(1)
- UVa 10474 Where is the Marble?
- 合并石子c++
- leetcode刷题系列C++-Longest Consecutive Sequence
- c++ vector赋值
- C++中的异常操作:throw&try&catch
- c++内存分配
- C++结构(structure)详解
- C语言enum枚举类型解析
- c++ char 运算
- C语言中extern的用法
- hadoop2.7伪分布式模式运行C++程序
- C++ cin.getline()函数的使用