1061 -- 【循环语句】猴子分桃
Description
有一堆桃子和N只猴子,第一只猴子将桃子平均分成了M堆后,还剩了1个,它吃了剩下的一个,并拿走一堆。后面的猴子也和第1只进行了同样的做法,请问N只猴子进行了同样做法后这一堆桃子至少还剩了多少个桃子(假设剩下的每堆中至少有一个桃子)?而最初时的那堆桃子至少有多少个?
Input
第一个数据为猴子的只数N(1≤N≤10)
第二个数据为桃子分成的堆数M(2≤M≤7)。
Output
输出包含两行数据,第一行数据为剩下的桃子数,第二行数据为原来的桃子数。
Sample Input
3 2
Sample Output
1
15
#include<iostream>
#include<iomanip>
#include<algorithm>
#include<cmath>
#include<cstdio>
#include<cstdlib>
#include<cstring>
using namespace std;
int main() {
int n,m;
cin>>n>>m;
int i=1,j=0,k=1,p=1;//k:桃子的总数量,p:剩余的桃子数量
p=k*(m-1);
while(i<=n) {//枚举的猴子数量
if(p%(m-1)!=0) {
i=1;
k++;
p=k*(m-1);
}else{
p=p/(m-1)*m+1;
i++;
}
}
cout<<k*(m-1)<<endl<<p;
return 0;
}