1 条题解

  • 0
    @ 2025-6-16 14:41:03

    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
    上传者