zoukankan      html  css  js  c++  java
  • P1146 硬币翻转

    P1146 硬币翻转超链接

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

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

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


    规律如下:

    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 namespace std;
     4 int main()
     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     int k; 
    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 } 

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

  • 相关阅读:
    日期时间基本知识
    VScode 常用操作
    js实现图片的Blob base64 ArrayBuffer 的各种转换
    window.postMessage()实现(iframe嵌套页面)跨域消息传递
    软件工程概论个人总结
    软件工程学习进度表(第十六周)
    《构建之法》阅读笔记
    软件工程学习进度表(第十五周)
    《人月神话》阅读笔记06
    《人月神话》阅读笔记05
  • 原文地址:https://www.cnblogs.com/Kyriech-Francis/p/Answer_P1146.html
Copyright © 2011-2022 走看看