很久很久之前做过的一道题

翻n-1枚硬币,就是有一枚不翻,也可以理解为翻一枚

直接上程序,看程序说话

 1 #include<iostream>
 2 using namespace std;
 3 const int maxn=101;
 4 bool a[maxn];//a数组负责存储硬币的状态
 5 int n;//n枚硬币
 6 int main(){
 7     cin>>n;
 8     cout<<n<<endl;//因为相当于只翻一枚,所以翻n次即可
 9     for(int i=1;i<=n;i++){//i表示这是第几次翻
10         for(int j=1;j<=n;j++)//表示当前翻得是第几枚硬币
11             if(j!=i){//如果不为第i枚
12                 if(a[j])a[j]=0;//1变成0
13                 else a[j]=1;//0变成1
14             }
15             cout<<a[j];//输出当前状态
16         }
17         cout<<endl;//别忘了换行
18     return 0;
19 }

洛谷上的原版