题目:来源于洛谷
请你找出 M 个和为 N 的正整数,他们的乘积要尽可能的大。
输出字典序最小的一种方案。
输入格式
一行,两个正整数 N,M
输出格式
M 个和为 N 的,乘积尽可能的大的正整数。
输入输出样例
输入 #1
6 3
输出 #1
2 2 2
分析:
凑成N的第 i 个数(1 ≤ i ≤ M),可以用 ( N - (上一个N / M)的商 ) / M来算得。
代码如下:
#include <iostream>
#include <cstdio>
using namespace std;
#define ll long long
const int maxn = 100;
int N, M,sum=0;
int main()
{
scanf("%d%d", &N,&M);
//共有M个数
for (int i = 0; i < M; i++) {
printf("%d ", (N - sum) / (M - i)); //计算商
sum += (N - sum) / (M - i); //计算商的和
}
return 0;
}
(●ˇ∀ˇ●)