| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 524 人关注过本帖
标题:c++:报数问题,,,,,, 不知道怎么总是 wa 求解
只看楼主 加入收藏
风雨123
Rank: 2
等 级:论坛游民
帖 子:84
专家分:65
注 册:2013-2-23
结帖率:66.67%
收藏
已结贴  问题点数:5 回复次数:1 
c++:报数问题,,,,,, 不知道怎么总是 wa 求解
描述

n 个人围成一圈, 并依次编号 1~n, 。从编号为 1 的人开始,按顺时针方向每隔一人选出一个,剩下的人重新围成一圈,如此循环直到剩下两人,这剩下的两人就是幸运儿。如果你想成为最后两个幸运儿,请问开始时应该站在什么位置?(设 3<=n<=50)

输入

开始时的人数 n

输出


第 1行是选出顺序,第 2 行是两名幸运儿的开始位置(按升序排列) ,位置编号之间用一个空格分开。



输入:
12
应该的输出:
2 4 6 8 10 12 3 7 11 5
1 9

样例输入


12

样例输出


2 4 6 8 10 12 3 7 11 5
1 9
程序代码:
#include <iostream>
using namespace std;
int main()
{
    int a[51],i,j,k,n,m,b[1],t,p;
    while(cin>>n)  //多用例
    {
        for(i=1;i<=n;i++)
            a[i]=i;   //一次赋值为 1,2,3,4、、、、
        j=1;m=0;k=0;i=1;p=0;
        while(j<n-1)
        {
            if(a[i]!=0)
                k++;
            if(k==2)
            {
                if(p==0)
                {
                    cout<<a[i];
                    p++;
                }
                else if(p>0)
                    cout<<" "<<a[i];
                j++;
                a[i]=0;
                k=0;
            }
                i++;
           
            if(i==n+1)
                i=1;
       
        }
        cout<<endl;
        k=0;
        for(i=1;i<=n;i++)
            if(a[i]!=0)
            {
                b[k]=a[i];
                k++;
            }
            if(b[0]>b[1])
            {
                t=b[0];
                b[0]=b[1];
                b[1]=t;
            }
            cout<<b[0]<<" "<<b[1]<<endl;
    }
    return 0;
}

搜索更多相关主题的帖子: include 顺时针 幸运儿 顺时针 幸运儿 include 
2013-06-09 10:46
快速回复:c++:报数问题,,,,,, 不知道怎么总是 wa 求解
数据加载中...
 
   



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

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