| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 754 人关注过本帖
标题:求大神,纸牌问题C语言实现
只看楼主 加入收藏
不眠的夜
Rank: 2
等 级:论坛游民
帖 子:63
专家分:96
注 册:2013-3-12
结帖率:66.67%
收藏
已结贴  问题点数:10 回复次数:9 
求大神,纸牌问题C语言实现
有编号从1到N的纸牌,按顺序摞在一起。游戏规则:扔掉第一张并将第二张放到最下面;然后扔掉第三张并将第四张放到最下面;依次循环下去,问最后剩下编号为几的牌号?N是随机输入的数,输出剩余的最后编号。
例如:N=3;
最后输出:2

N=6;
最后输出:4

N=10;
最后输出:4
搜索更多相关主题的帖子: C语言 纸牌 C语言 纸牌 
2013-06-03 18:29
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:0 
围观

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2013-06-03 18:51
apull
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:三体星系
等 级:版主
威 望:216
帖 子:1490
专家分:9104
注 册:2010-3-16
收藏
得分:0 
2013-06-03 19:09
i_code
Rank: 2
等 级:论坛游民
帖 子:19
专家分:15
注 册:2013-5-2
收藏
得分:4 
程序代码:
/*纸牌问题*/


#include<stdio.h>
#include<stdlib.h>
void init(int *x,int n)   //初始化
{
    int i;
    for(i=0;i<2*n-2;i++)
        x[i]=0;
    for(i=0;i<n;i++)
        x[i]=i+1;


}
int turn(int *x,int n)   //模拟游戏过程
{
    int i,j=n;
    for(i=1;i<2*n-3;i+=2)
        x[j++]=x[i];
    return x[j-1];

}
int main()
{
    int n,*x;
    printf("N=");
    scanf("%d",&n);
    x=(int *)malloc(sizeof(int)*(2*n-2));
    init(x,n);
    printf("%d\n",turn(x,n));
    return 0;

}
2013-06-03 19:15
YJ_Hao
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:215
专家分:609
注 册:2013-3-22
收藏
得分:0 
先占个位,等。。。
2013-06-03 19:17
不眠的夜
Rank: 2
等 级:论坛游民
帖 子:63
专家分:96
注 册:2013-3-12
收藏
得分:0 
回复 4楼 i_code
谢谢了。能不能在简化一些,运行有些超时,时间限制1S。
2013-06-03 19:22
i_code
Rank: 2
等 级:论坛游民
帖 子:19
专家分:15
注 册:2013-5-2
收藏
得分:1 
回复 6楼 不眠的夜
把init()函数中下面这条语句注释掉,再试一下
 for(i=0;i<2*n-2;i++)
        x[i]=0;
2013-06-03 19:37
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:5 
程序代码:
#include <stdio.h>

int main()
{
    int tmp, n;
    int flag = 0, a1 = 1, d = 1;

    scanf("%d", &n);
    while (n > 1)
    {
        tmp = n;

        if (flag)    n -= n / 2;
        else    a1 += d, n /= 2;

        if (tmp % 2)    flag = !flag;
        
        d *= 2;
    }

    printf("%d\n", a1);
    return 0;
}


[fly]存在即是合理[/fly]
2013-06-04 00:31
不眠的夜
Rank: 2
等 级:论坛游民
帖 子:63
专家分:96
注 册:2013-3-12
收藏
得分:0 
回复 8楼 azzbcc
谢了。。
2013-06-04 16:49
lwb603569640
Rank: 6Rank: 6
等 级:侠之大者
威 望:2
帖 子:283
专家分:436
注 册:2012-11-9
收藏
得分:0 


[ 本帖最后由 lwb603569640 于 2013-6-5 17:22 编辑 ]

自由、民主、宪政!
2013-06-05 17:16
快速回复:求大神,纸牌问题C语言实现
数据加载中...
 
   



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

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