硬币 题目描述: 有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
正确答案:参考程序(Python):硬币。反转任意3个。N为3的倍数或(N-2)%3...规律:N%3==0则N//3;N%3==1则(N+2)//3;N%3==2则N//3+1(如7→3)。不可行输出-1。核心:3个硬币反转规律。
试卷来源:202302(第14届)蓝桥杯C++编程青少组(选拔赛_中高级)真题