A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

JIANYIFEI

初级黑马

  • 黑马币:11

  • 帖子:8

  • 精华:0

© JIANYIFEI 初级黑马   /  2019-12-16 14:11  /  1012 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

#include<iostream>
using namespace std;
int r[200];
int main(){
        int m=6,n=2;
        for (int i=1;i<m;i++)r[i]=i+1;
        r[m]=1;
        int i=0,p=1,k;
        bool b=true;
        while(b){
                i++;k=p;p=r[p];
                if(k==p){
                        cout<<p<<endl;b=false;
                }else if(i==n+1){
                        cout<<p<<' ';
                        i=0;p=r[p];r[k]=p;
                }
        }
        return 0;
}
这个代码的答案我知道,但他的第三个数一直算不对,以下是我总结:
第一个回合:r[1]=2;
第二个回合:r[2]=3;
第三个回合:r[3]=4;
第四个回合:r[4]=5;
第五个回合:r[5]=6;
第六个回合:r[6]=1;
i=0,p=1,r[1]=2;r[2]=3;r[3]=4;r[4]=5;r[5]=6;r[6]=1;
第一个回合:i=1,k=1,p=2,输出:
第二个回合:i=2,k=2,p=3, 输出:
第三个回合:i=3,k=3,p=4, 输出:4,空格,
i=0;p=5;r[3]=4;
第四个回合:i=1,k=5,p=6, 输出:
第五个回合:i=2,k=6,p=1, 输出:
第六个回合:i=3,k=1,p=2, 输出:2 空格,
i=0;p=3;r[1]=2,
第七个回合:i=1,k=2,p=4, 输出:
第八个回合:i=2,k=3,p=5, 输出:
第九个回合:i=3,k=4,p=6, 输出:
帮我看看算错在哪?
答案:4 2 1 3 6 5

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马