c++题目:切香肠

c++题目:切香肠

题目

题目描述

有 n 条香肠,每条香肠的长度相等。我们打算将这些香肠切开后全部分给 k 名客人,且要求每名客人获得一样多的香肠。请问最少需要切几刀?注意一刀只能切断一条香肠,每个客人可以接受多段香肠。

输入格式

单独一行:两个正整数n 与 k。

输出格式

单个自然数:表示最少需要切几刀。

数据范围

对于 40%的数据,1≤n,k≤50;

对于 70%的数据,1≤n,k≤5000;

对于 100%的数据,1≤n,k≤5,000,000。

样例数据

输入:

2 6

输出:

4

说明:

两根香肠六人分,每根香肠切成3段,共4刀

输入:

6 2

输出:

0

说明:

六根香肠两人分,不需要切

输入:

3 4

输出:

3

说明:

在每根香肠的1/4处切开,有三人每人得到3/4根香肠,最后一人得到三个1/4长的香肠。

 

解法

一道模拟题,代码如下:

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int n,k;
	scanf("%d%d",&n,&k);
	if(n%k==0){
		cout<<0;
		return 0;
	}
	else if(k%n==0)
	{
		cout<<(k/n-1)*n;
	 }
	 else
	 {
	 	cout<<n;
	 }
	return 0;
}
posted @ 2022-11-19 15:21  全角的!与半角的!  阅读(204)  评论(0编辑  收藏  举报