猴子分桃问题

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;
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值