完善程序 第3节 提高篇 1、[NOIP2000]

  • 问题描述

将2n个0和2n 个1,排成一圈。从任一个位置开始,每次按逆时针的方向以长度为n+1的单位进行数二进制数。

要求给出一种排法,用上面的方法产生出来的2n+1个二进制数都不相同。

 例如,当n=2时, 即22个0 和22个1 排成如下一圈:

比如,从A位置开始,逆时针方向取三个数000,然后再从B位置上开始取三个数001,接着从C开始取三个数010,…,可以得到000,001,010,101,011,111,110,100共8个二进制数且都不相同。

程序说明  

    以n=4为例,即有16个0,16个1,

     数组a用以记录32个0,1的排法,

     数组b统计二进制数是否已出现过。

程序清单

/*
完善程序 第3节 提高篇 1、[NOIP2000]
1.问题描述
  将2n个0和2n 个1,排成一圈。从任一个位置开始,
每次按逆时针的方向以长度为n+1的单位进行数二进制数。
要求给出一种排法,用上面的方法产生出来的2n+1个二进制数都不相同。
例如,当n=2时, 即22个0 和22个1 排成如下一圈:
比如,从A位置开始,逆时针方向取三个数000,
然后再从B位置上开始取三个数001,
接着从C开始取三个数010,…,
可以得到000,001,010,101,011,111,110,100
共8个二进制数且都不相同。

程序说明  
    以n=4为例,即有16个0,16个1,
     数组a用以记录32个0,1的排法,
     数组b统计二进制数是否已出现过。
程序清单 
*/ 
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int a[37],b[32],i,j,k,s,p;
int main( )
{
	for(i=1;i<=36;i++) a[i]=0;
	for(i=28;i<=32;i++) a[i]=1;
	p=1;a[6]=1;
	while(p==1)
	{
		j=27;
		while(a[j]==1) j--;
		____;
		for(i=j+1;i<=27;i++) _____;
		for(i=0;i<=31;i++) b[i]=0;
		for(i=1;i<=32;i++)
		{
			_______;
			for(k=i;k<=i+4;k++) s=s*2+a[k];
			_______;
		}
		s=0;
		for(i=0;i<=31;i++) s+=b[i];
		if ______ p=0;
	}
	for(i=1;i<=32;i++)
	for(j=i;j<=i+4;j++) cout<<a[j];
	cout<<endl;
	return 0;
}


0.CSP-J初赛集训第0课——进制转换

0.CSP-J初赛集训第0课——进制转换_哔哩哔哩_bilibili

1.CSP-J初赛集训第1课——计算机中的数据大小

1.CSP-J初赛集训第1课——计算机中的数据大小_哔哩哔哩_bilibili

2.CSP-J初赛集训第2课 原码反码与补码

2.CSP-J初赛集训第2课 原码反码与补码_哔哩哔哩_bilibili

3.CSP-J初赛集训第3课 进制转换 原码反码补码 近十年真题汇总

3.CSP-J初赛集训第3课 进制转换 原码反码补码 近十年真题汇总_哔哩哔哩_bilibili

4.CSP-J初赛集训第4课——栈和队列初识

4.CSP-J初赛集训第4课——栈和队列初识_哔哩哔哩_bilibili

5.CSP-J初赛集训—栈的近20年真题讲解

5.CSP-J初赛集训—栈的近20年真题讲解_哔哩哔哩_bilibili

6.CSP-J初赛集训——循环队列 真题讲解

6.CSP-J初赛集训——循环队列 真题讲解_哔哩哔哩_bilibili

7.CSP-J初赛集训第5课 数据结构 树的基本概念介绍 树和二叉树 小白一听就会

7.CSP-J初赛集训第5课 数据结构 树的基本概念介绍 树和二叉树 小白一听就会_哔哩哔哩_bilibili

8.CSP-J初赛集训 关于树的计算真题 二叉树的计算 CSP noip

8.CSP-J初赛集训 关于树的计算真题 二叉树的计算 CSP noip_哔哩哔哩_bilibili

9.CSP-J初赛集训第6课 二叉树的遍历 小白入门必好学

9.CSP-J初赛集训第6课 二叉树的遍历 小白入门必好学_哔哩哔哩_bilibili

10.CSP-J初赛集训 二叉树的遍历 历年真题讲解

10.CSP-J初赛集训 二叉树的遍历 历年真题讲解_哔哩哔哩_bilibili

11.CSP-J初赛集训第6课 图的基本概念介绍

11.CSP-J初赛集训第6课 图的基本概念介绍_哔哩哔哩_bilibili

12.CSP-J初赛集训 关于图的历年真题讲解

12.CSP-J初赛集训 关于图的历年真题讲解_哔哩哔哩_bilibili

13.CSP-J初赛集训第7课_排列和组合

13.CSP-J初赛集训第7课_排列和组合_哔哩哔哩_bilibili


 


 


 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dllglvzhenfeng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值