P1146 硬币翻转

摘要:
P1146硬币翻转(超链接)我终于写这个题了,我太难了!正面为0,反面为1.m表示次数假设n=6,初始为正面000000将第2个至第6个翻转011111m=1定义变量k,表示不进行翻转的硬币。此时k=2(加粗)011111将除k以外的硬币翻转110000m=2k+1110000将除k以外的硬币翻转000111m=3k+1000111(继续)……111100m=4111100000001m=5直到k=n000001最后,将第1个至第5个翻转111111共6次可得出,当k从2变到n时需要n-1次加上第1次,得出共需要n次当n=8初始:0000000001111111m=10111111111000000m=21100000000011111m=30001111111110000m=41111000000000111m=50000011111111100m=61111110000000001m=70000000111111111m=8当n=10.12.14……代码实现如下:1#include2#include3usingnamespacestd;4intmain()5{6intn,a[200],i,j;7cin˃˃n;8for9a[i]=0;10cout˂˂n˂˂endl;11cout˂˂"0";12for13{14a[i]=1;15cout˂˂a[i];16}17cout˂˂endl;18intk;19for20{21for22{23if24a[j]=1;25else26a[j]=0;27}28for29{30if31a[j]=1;32else33a[j]=0;34}35for36cout˂˂a[j];37cout˂˂endl;38}39for40cout˂˂"1";41cout˂˂endl;42return0;43}不要抄袭,看看就好,希望给你提供思路。
P1146 硬币翻转超链接

我终于写这个题了,我太难了!

P1146 硬币翻转第1张

在做这道题的时候,我竟然在相关讨论里找到了这个?!

P1146 硬币翻转第2张

刚刚开始的我是这么想的我不会,管理员不会,所以我=管理员


规律如下:

n表示有几个硬币(偶数)。正面为0,反面为1.m表示次数 假设n=6, 初始为正面

000000

将第2个至第6个翻转

011111 m=1

定义变量k,表示不进行翻转的硬币。 此时k=2(加粗)

011111

将除k以外的硬币翻转

110000 m=2

k+1

110000

将除k以外的硬币翻转

000111 m=3

k+1

000111

(继续)……

111100 m=4

111100

000001 m=5

直到k=n

000001

最后,将第1个至第5个翻转

111111

共6次

可得出,当k从2变到n时需要n-1次 加上第1次,得出共需要n次

当n=8

初始:0 0 0 0 0 0 0 0

0 1 1 1 1 1 1 1 m=1

0 1 1 1 1 1 1 1

1 1 0 0 0 0 0 0 m=2

1 1 0 0 0 0 0 0

0 0 0 1 1 1 1 1 m=3

0 0 0 1 1 1 1 1

1 1 1 1 0 0 0 0 m=4

1 1 1 1 0 0 0 0

0 0 0 0 0 1 1 1 m=5

0 0 0 0 0 1 1 1

1 1 1 1 1 1 0 0 m=6

1 1 1 1 1 1 0 0

0 0 0 0 0 0 0 1 m=7

0 0 0 0 0 0 0 1

1 1 1 1 1 1 1 1 m=8

当n=10.12.14……亦是如此。

这个题就实现了,回头一看,并不难。


代码实现如下:

1 #include<iostream>
2 #include<cstdio> 
3 using namespacestd;
4 intmain()
5 {
6     int n,a[200],i,j;
7     cin>>n;
8     for(i=1;i<=n;i++)
9         a[i]=0;
10     cout<<n<<endl;
11     cout<<"0"; 
12     for(i=2;i<=n;i++)
13 {
14         a[i]=1;
15         cout<<a[i];
16 }
17     cout<<endl;
18     intk; 
19     for(k=2;k<=n-1;k++)     
20 {
21         for(j=1;j<=k-1;j++)
22 {
23             if(a[j]==0)
24                 a[j]=1;
25             else
26                 a[j]=0; 
27 } 
28         for(j=k+1;j<=n;j++)
29 {
30             if(a[j]==0)
31                 a[j]=1;
32             else
33                 a[j]=0;     
34 }
35         for(j=1;j<=n;j++)
36             cout<<a[j];  
37             cout<<endl; 
38 } 
39     for(i=1;i<=n;i++)
40         cout<<"1";
41     cout<<endl;
42     return 0;
43 } 

不要抄袭,看看就好,希望给你提供思路。

免责声明:文章转载自《P1146 硬币翻转》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇C99规范通过Bochs分析Lilo启动Linux内核的过程下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

VirtualBox虚拟机下Windows登录密码破解方法(阿里云推荐码:1WFZ0V,立享9折!)

过去两年虚拟机的发展给开发者带来了极大的便利。要安装新环境,只需从其他人复制虚拟机文件即可。我以前在Ubuntu下工作,Windows偶尔也会使用它。所以我在Ubuntu VirtualBox下安装了Windows7。两天前,我在MacAir下打开了VirtualBox并启动了Win7虚拟机。在Win7登录界面输入密码后,系统提示我密码不正确。我只能在最初的...

QSS基础-设置控件样式

1.QSS基础-设置类似控件的样式“QSS基础:QtStyleSheetQt样式表用于设置控件的样式和样式(例如控件的背景色、字体颜色、字体大小等)。功能与CSS相似。功能类似。“”从PyQt5.Qt重新导入*从PyQt5.QtGuidimport*从PyQt5.QtWidgetsimport*importsysclassBasicQSS(QWidget):...

VMware vSphere 7.0 安装教程

插入CD,启动系统并等待安装包加载映像,按Enter等待协议条款,同意,然后按F11进行磁盘分区管理。由于测试环境的原因,只有一个硬盘,直接按Enter键进入键盘布局,选择默认设置,按Enter键设置根帐户的密码,输入完成后按Enter键确认安装,按F11键等待安装完成,取出安装CD,重新启动后按Enter重新启动系统,正在加载到系统中…请确保已导入磁盘。错...

HTTP请求报文

不仅报表样式可以传递请求参数,请求url也可以以类似于键值对的方式传递数据...

常用的Maven 插件

Maven本质上是一个插件框架。其核心不执行任何特定的施工任务。所有这些任务都委托给插件。多年来,Maven社区积累了大量经验,随后形成了成熟的插件生态系统。这个插件在一些Ant到Maven的迁移项目中特别有用。只要在父POM中配置规则,然后由每个人继承,Maven就会在规则被破坏时报告错误。...

Linux cat查看文件,查找关键字(grep),统计(wc -l)

######cat搜索关键字的语法:cat file | grep keyword | wc lcat/proc/meminfo | grepSwap | wc-l#######Linux系统中wc命令的功能是统计指定文件中的字节、单词和行数,并显示和输出统计结果。如果没有给出文件名,则从标准输入中读取。wc还提供指定文件的总统计数。此标志不能与-c标志一起...