1 条题解
-
0
1.若N为偶数。若初始状态为硬币全部同面的话,则翻转次数为偶数 (0+2i,i=0,1,2... 对一枚硬币可以翻任意2i次 ) 正反面硬币的组合可能是(奇数+奇数)或者(偶数+偶数)。当正反面硬币数目均为偶数时,想要同一面朝上,翻转次数必为偶数。 若正反面硬币都是奇数,则翻转次数必为奇数。两者矛盾。所以在N为偶数时无解。
2.若N为奇数,若所有的硬币开始就是同一面朝上,则翻转次数必为偶数。 正反面硬币的组合只能是(奇数+偶数)由于翻转次数为偶数,故必须将数目为偶数的那部分硬币反过来。 当只有一枚硬币与其他硬币不同时,出现的是可能的最大数目即为N-1.故N为奇数时,翻转次数为N-1.
#include <iostream> using namespace std; int main() { int n; while (cin >> n && n != 0) { if (n % 2 == 0) { cout << "No Solution!" << endl; } else { cout << n - 1 << endl; } } return 0; }
- 1
信息
- ID
- 2211
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 2
- 标签
- 递交数
- 9
- 已通过
- 1
- 上传者