这道题我一开始没有看懂题目意思 后面才知道原来很简单
这道题其实有两种情况
1,当硬币数为偶数时
1)偶数个正面,偶数个反面
这种情况,最少要翻得个数是偶数个。
2)奇数个正面,奇数个反面
这种情况,最少要翻得个数是奇数个。
两种情况相违背,所以当硬币数为偶数时,应该输出No Solution!。
2,当硬币数为奇数时
这种时候,无论奇数个正面,偶数个反面或者奇数个反面偶数个正面,这两种情况都是一样的。所以我们只要考虑其中一种。此时应该输出(硬币个数-1)。
#include<stdio.h>
#include<string.h>
#include<iostream>
using namespace std;
int main()
{
int n;
while(scanf("%d",&n)!=EOF&&n!=0)
{
if(n%2==0)
printf("No Solution!\n");
else printf("%d\n",n-1);
}
return 0;
}