| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 429 人关注过本帖
标题:求教一道指针练习题
只看楼主 加入收藏
caochuan2000
Rank: 2
等 级:论坛游民
帖 子:66
专家分:35
注 册:2009-4-11
结帖率:76.47%
收藏
已结贴  问题点数:40 回复次数:4 
求教一道指针练习题
有N个人围成一圈,顺序排号.从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来的第几号的那位.
书上的练习题,想了很久都没想出来,有哪位达人指点下?只求个具体实现逢3少1个数的方法
搜索更多相关主题的帖子: 练习题 指针 
2009-08-02 16:05
NoSoul
Rank: 9Rank: 9Rank: 9
来 自:沈阳化工大学
等 级:蜘蛛侠
帖 子:283
专家分:1010
注 册:2009-6-6
收藏
得分:10 
#include<stdio.h>
void main()
{
int i,j,n;
do
{
scanf("%d",&n);
for (j=1,i=2;i<=n;i++)
j= j+3>i ? j+3-i:j+3;
printf("remain %d\n",j);
} while (n);
}

我想伸手拉近點,竟觸不到那邊,就欠一點點,但這一點點...卻好遠
2009-08-02 16:40
caochuan2000
Rank: 2
等 级:论坛游民
帖 子:66
专家分:35
注 册:2009-4-11
收藏
得分:0 
你这个代码很强大啊,我想了1天的问题你短短这2行就搞定了,虽然我还没有看的很明白,不过运行通过了~
2009-08-02 17:14
caochuan2000
Rank: 2
等 级:论坛游民
帖 子:66
专家分:35
注 册:2009-4-11
收藏
得分:0 
能不能解释下是怎么实现的啊?我看不太明白
2009-08-02 17:17
soler
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:181
专家分:1077
注 册:2005-7-16
收藏
得分:30 
#include <stdio.h>
#define N 100

int main()
{
    int a[N]={1};
    int *p=a;
    int i,n;
    static int counter=0;
    int leap=1,space_counter;

    printf("pls enter number n:");
    scanf("%d",&n);

    for(i=1;i<n;i++)
        p[i]=p[i-1]+1;

    while(leap)
    {
        space_counter=0;
        for(i=0;i<n;i++)
        {

            if(p[i]!=0)
            {
                counter++;
                if(counter%3==0)
                    p[i]=0;
            }
            else space_counter++;
        }
        if(space_counter>=n-1)
            leap=0;
    }
    for(i=0;i<n;i++)
        if(p[i]!=0)
            printf("The result is %d",p[i]);
    return 0;
}
上面是用模拟方法做出来的。看了别人的方法之后觉得很低级。
在网上看到一个用递推的解法。
for(i=2;i<=n;i++)
   a[i]=(a[i-1]+k-1)%i+1; 其中k为你循环个数3
最后输出a[n]就是你想要的结果。
具体的分析方法见下面链接   约瑟夫环
http://zhidao.baidu.com/question/53397409.html

[[it] 本帖最后由 soler 于 2009-8-2 19:46 编辑 [/it]]
2009-08-02 19:42
快速回复:求教一道指针练习题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.034591 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved