社区
C语言
帖子详情
报数问题
walkman154
2006-06-29 09:03:38
一共8个人,报数
a b c d e f g h
1 2 3 4 5 6 7 8
15 14 13 12 11 10 9
16 17 18 19 20 21 22
。。。。。。。。。。。。。。。。。
求任意一个数报道第几个人,例如报到123456,是第几个人?
...全文
350
13
打赏
收藏
报数问题
一共8个人,报数 a b c d e f g h 1 2 3 4 5 6 7 8 15 14 13 12 11 10 9 16 17 18 19 20 21 22 。。。。。。。。。。。。。。。。。 求任意一个数报道第几个人,例如报到123456,是第几个人?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
walkman154
2006-07-10
打赏
举报
回复
就是楼上兄弟这个意思。
tianxing009
2006-07-04
打赏
举报
回复
楼上的说到了关键,不能除8,该-1除7
hljalong
2006-07-03
打赏
举报
回复
我认为楼主说的是这样:
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
... ...
而不是这样:
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
... ...
sny8054
2006-06-30
打赏
举报
回复
to :hljalong(小龙) SamuelKevin(曼陀罗)
there is a error in your program . when the var num= 9 ,the result is 7 not 8 .8 is the right result.
GGStudy_DayDayUp
2006-06-30
打赏
举报
回复
对16求余
SamuelKevin
2006-06-30
打赏
举报
回复
to:sny8054()
是貌似这样 是你看错了吧 呵呵
1 2 3 4 5 6 7 8
15 14 13 12 11 10 9
16 17 18 19 20 21 22
tailzhou
2006-06-29
打赏
举报
回复
D:\projects\cl>test
4
4
D:\projects\cl>test
8
8
D:\projects\cl>test
9
7
D:\projects\cl>test
10
6
D:\projects\cl>test
15
1
D:\projects\cl>test
16
2
D:\projects\cl>test
21
7
D:\projects\cl>test
22
8
D:\projects\cl>test
23
7
tailzhou
2006-06-29
打赏
举报
回复
#include <stdio.h>
#define NUM 8
int main()
{
int n;
int i,j;
scanf("%d",&n);
if (n<=NUM)
{
printf("%d\n",n);
return 0;
}
n=n-NUM;
i=n/(NUM-1);
j=n%(NUM-1);
if (j)
{
++i;
}
else
{
j=NUM-1;
}
if (i%2)
{
printf("%d\n",NUM-j);
}
else
{
printf("%d\n",j+1);
}
return 0;
}
asusa3a
2006-06-29
打赏
举报
回复
先用16求余数,再用8个case。
wenysongbaobao
2006-06-29
打赏
举报
回复
恩,我的想法是除以8,根据商(取整)是奇数还是偶数判断最后一轮抱树的顺序是从a到h,还是从h到a。
然后再根据余8的结果(余数)判断是第几个人。如果顺序是从a到h的话,就是第“余数”个人。如果顺序是从h到a的话,就是第(8-余数+1)个人。
代码就不写了,可以吗,呵呵:)
PMsg
2006-06-29
打赏
举报
回复
余个8就行
看余数是几就是第几个,是按顺序报吧?
hljalong
2006-06-29
打赏
举报
回复
#define NUM 8
int main()
{
int num = 0;
scanf("%d", &num);
printf("%d", ((num-1)/(NUM-1))%2==0?((num-1)%(NUM-1))+1:NUM-((num-1)%(NUM-1));
return 0;
}
这样,NUM可以设置成一个任意的值,都可以知道这种报数的最后一个人是谁的。
SamuelKevin
2006-06-29
打赏
举报
回复
很简单啊
#include <stdio.h>
int main()
{
int num;
scanf("%d", &num);
if (num==1)
{
printf("%d\n", num);
}
else if (num>1)
{
printf("%d", (num-2)/7%2==1?7-(num-2)%7 : 2+(num-2)%7);
}
return 0;
}
新媒体运营之宣传网站制作快速入门 & 快速制作海报教程
本课程主要讲解如何快速制作个人或者企业宣传网站,包括宣传网站制作快速入门以及宣传网站制作高阶美化2大版块,通过本课程的学习,您可以快速搭建一套个人或者企业的宣传网页,较好地促进品牌营销。在线制作海报教程主要将讲解如何通过在线制图平台快速制作宣传海报,方便没有PS基础的同学或者同事能够快速上手企业宣传海报的制作,本课程主要选用的是:凡科快图在线平台,感兴趣的朋友也可以采用其他在线制图相关平台。
报数
问题
(C语言)
报数
问题
(C语言)一、题目描述二、裁判测试程序样例三、输入/输出输入样例输出样例四、解题思路五、示例代码六、运行情况 一、题目描述
报数
游戏是这样的:有n个人围成一圈,按顺序从1到n编好号。从第一个人开始
报数
,报到m(<n)的人退出圈子;下一个人从1开始
报数
,报到m的人退出圈子。如此下去,直到留下最后一个人。 本题要求编写函数,给出每个人的退出顺序编号。 函数接口定义: void CountOff( int n, int m, int out[] ); 其中n是初始人数;m是游戏规定的退出位次(保证
烽火算法题
报数
问题
(不是约瑟夫环)双向链表 Java实现与C实现
报数
问题
报数
问题
解答1.题目要求2.解题思路3.代码实现4.
问题
总结
报数
问题
时间限制:3000MS 内存限制:589824KB 题目描述: 当n个人排成一条直线,从左到右的编号分别为1到n。现在从第1个人开始
报数
,在
报数
过程中,如果有人报到m则出列,下一个人将继续从1开始
报数
,第n个人报完数之后再接着往回
报数
,即倒数第2个人继续报下一个数,当报到第1个人后,第2个人在接着
报数
。如此循环,直到只留下一个人为止、 例如当n=2,m=3时,第1个人报1,第2个人报2,接下来第1个人报3,出列,留下第2个人。
报数
问题
(c++)
报数
问题
描述: n个人围一圈圈,从第一个人开始
报数
,报到m的人退出,问最后留到最后的是原本标号为几的人? 输入: n,m 输出: 游戏最后一人的标号 代码: #include <bits/stdc++.h> using namespace std; int main() { int n,m; cin>>n>>m; int num=n; int a[1111],vis[1111]; for(int i=1;i<=n;i++) vis[i]=1; int
数据结构 循环队列的实现与应用举例:
报数
问题
循环队列是一种常见的队列实现方式,各个数据元素依次存储,并设置两个指针,分别指向队头和队尾,在插入和删除数据时,队头指针和队尾指针会循环使用存储空间。应用队列可以解决
报数
问题
。
报数
问题
:设有n个人站成一排,从左向右的编号分别为1~n, 现在从左向右
报数
“1,2,1,2,1,2….”,数到”1”的人出列,数到”2”的人站到队伍最右边。
报数
过程反复进行,直到n个人都出列为止。 分析:可以创建一个队列存储各个数据。左边相当于队头,右边相当于队尾。左边的人
报数
相当于从队列中取出队头元素并删除队头元素。站到队伍
C语言
69,371
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章