搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 这怎么做啊,请大神们给我参考下
标题:
这怎么做啊,请大神们给我参考下
取消只看楼主
w4654646
等 级:
新手上路
帖 子:80
专家分:0
注 册:2016-3-2
结帖率:
76.47%
楼主
已结贴
√
问题点数:20 回复次数:10
这怎么做啊,请大神们给我参考下
题目描述
n个人排成一圈,按顺时针方向依次编号1,2,3…n。从编号为1的人开始顺时针"一二"报数,报到2的人退出圈子。这样不断循环下去,圈子里的人将不断减少。最终一定会剩下一个人。试问最后剩下的人的编号。
输入
不超过1000组数据。
每组数据一行,每行一个正整数,代表人数n。 (1 <= n < 2^31)
输出
每组输入数据输出一行, 仅包含一个整数,代表最后剩下的人的编号。
样例输入
7
2
样例输出
7
1
搜索更多相关主题的帖子:
顺时针
正整数
2016-06-21 15:34
w4654646
等 级:
新手上路
帖 子:80
专家分:0
注 册:2016-3-2
第
2
楼
得分:0
这么短的代码 我想说这个f=(f+2)%i是什么意思啊?
2016-06-21 16:13
w4654646
等 级:
新手上路
帖 子:80
专家分:0
注 册:2016-3-2
第
3
楼
得分:0
还有结果是时间超限
2016-06-21 16:16
w4654646
等 级:
新手上路
帖 子:80
专家分:0
注 册:2016-3-2
第
4
楼
得分:0
大神们还有谁能写下别的代码吗 参考下
2016-06-21 16:26
w4654646
等 级:
新手上路
帖 子:80
专家分:0
注 册:2016-3-2
第
5
楼
得分:0
回复 6楼 rjsp
这 还是不会
2016-06-21 16:35
w4654646
等 级:
新手上路
帖 子:80
专家分:0
注 册:2016-3-2
第
6
楼
得分:0
回复 8楼 grmmylbs
看不懂 这是用C语言的?
2016-06-21 16:39
w4654646
等 级:
新手上路
帖 子:80
专家分:0
注 册:2016-3-2
第
7
楼
得分:0
回复 11楼 wanglianyi1
pow(x,y)的使用是下面这样吗
int pow(intx,inty)
{
int a;
a==x^y;
return a;
}
2016-06-21 17:00
w4654646
等 级:
新手上路
帖 子:80
专家分:0
注 册:2016-3-2
第
8
楼
得分:0
回复 12楼 w4654646
#include <stdio.h>
#include <math.h>
int pow(int x,int y)
{
int a;
a=x^y;
return a;
}
int main()
{
int loop,count,i,j;
scanf("%d", &loop);
count = 0;
j = loop;
for(i = 0; j > 0; i++)
{
j = j / 2;
count++;
}
printf("%d\n", (int)(2 * (loop - (pow(2, count - 1))) + 1));
return 0;
}
这个哪里错了?
2016-06-21 17:03
w4654646
等 级:
新手上路
帖 子:80
专家分:0
注 册:2016-3-2
第
9
楼
得分:0
没有人了吗?
2016-06-21 17:30
w4654646
等 级:
新手上路
帖 子:80
专家分:0
注 册:2016-3-2
第
10
楼
得分:0
以下是引用
rjsp
在2016-6-21 16:26:00的发言:
已经说了,这还需要优化
算法:将n的二进制形式去掉最高位,然后乘以二加1。就行了
例如 7,二进制是 111,去掉最高位就是 11,也就是十进制的3,然后乘以2加1结果就是 3*2+1=7
太简单了,代码自己写
这我不会
,请大家告诉我怎么写
2016-06-21 17:32
11
1/2页
1
2
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-466207-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 2.622527 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved