报数问题

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 打赏 收藏 转发到动态 举报
写回复
用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;
}

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧