刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

硬币

题目描述:

有N(2≤N≤50)个硬币正面朝上排成一排,每次反转任意3个硬币(正面反转后为反面,反面反转后为正面),请问最少反转几次可以使N个硬币全部反转成反面。

例如:

N=7,最少反转3次可以使7个硬币全部反转成反面。

第一次将第1、2、3的硬币反转为反面朝上;

第二次将第3个硬币反转为正面朝上,将第4、5的硬币为反面朝上;

第三次将第3、6、7的硬币反转为反面朝上。

输入描述:

输入一个正整数N(2≤N≤50),表示硬币的个数

输出描述:

输出一个整数,如果可以将N个正面朝上硬币全部反转成反面,就输出反转的次数,否则输出-1


样例输入:

7

样例输出:

3

使用微信搜索喵呜刷题,轻松应对考试!

答案:

```n = int(input())if n % 2 == 0:print(-1)else:count = n // 3if n % 3 == 0:print(count)else:print(count + 1)```

解析:

【喵呜刷题小喵解析】:

首先,我们读取输入的硬币数量N。

如果N是偶数,那么无论如何都无法将硬币全部反转成反面,因为每次反转操作只能改变奇数个硬币的状态,所以输出-1。

如果N是奇数,那么我们需要找到最小的反转次数,使得所有硬币都反转成反面。

对于硬币数量为N的情况,每次反转操作都会改变3个硬币的状态,因此最多需要N//3次反转操作。

如果N恰好是3的倍数,那么每次反转操作都能改变3个硬币的状态,所以最少需要N//3次反转操作。

如果N不是3的倍数,那么最后一次反转操作只能改变2个硬币的状态,所以最少需要N//3+1次反转操作。

因此,我们根据N的奇偶性和是否是3的倍数,输出相应的反转次数。
创作类型:
原创

本文链接:硬币 题目描述: 有N(2≤N≤50)个硬币正面朝上排成一排,每次反转任意3个硬币(正面反转后为反面

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share