Please enable java script to visit.
NOTEBOOK
HOMEPHP / MySQLJS / HTMLWXappPythonC++Blender其他
青蛙跳荷叶【*】 - NOTEBOOK
青蛙跳荷叶【*】
C++
Posted on 2023-08-03
摘要 : 环形跑道中找位置。注意每次的移动距离。
循环遍历的问题。
问题描述:
在一个荷塘里,有8个荷叶按照正八边形的形状排,我们给荷叶一次排上标号 0~7。
在荷叶0的位置上有一只青蛙,青蛙每次可以沿着顺时针跳过 a 个荷叶而停在下一个荷叶上。
请问青蛙经过 k 次跳跃后,它会停留在哪朵荷叶上?

输入格式:两个整数,a和k,其中a取值1~5,k取值1~100。
输入数据:2 3
输出数据:1



❱ 分析

代入某个数值,例如a=2,那么青蛙从 0 开始,第一次跳跃到 3的位置,即(a+1),第二次跳到6的位置,即(a+1)*2。
第三次本来应该跳到9的位置,但最多只有8个荷叶,所以第三次的位置是9-8=1,即 (a+1)*2 -8。
由此可以得到规律,第k次的位置原本是 (a+1)*k,但最有8个荷叶,所以要取余数。
(a+1)*k%8


上代码
#include <iostream>
using namespace std;

int main(){
int a,k;
cin >>a>>k;

cout <<(a+1)*k%8;
return 0;
}