【问题描述】
把3分解成两个正整数的和,有两种分解方法,分别是 3 = 1 + 2 和 3 = 2 + 1。注意顺序不同算不同的方法。
将5分解成三个正整数的和,有6种分解方法,分别是 1 + 1 + 3 = 1 + 2 + 2 = 1 + 3 + 1 = 2 + 1 + 2 = 2 + 2 + 1 = 3 + 1 + 1。
请问,将2021分解成五个正整数的和,有多少种分解方法?
分析:
隔板法:将2021拆分成2021个1,则两个1之间有2020种方法种放置可能。问题中将2021分解成五个正整数的和也就是在2020种可能中选取4种放置方式,即可用组合数表示为 。
#include <iostream>
using namespace std;
int main()
{
long long num1 = 1;
int num2 = 4 * 3 * 2 * 1;
for (int i = 2020; i >= 2017; i--)
{
num1 *= i;
}
cout << (num1 / num2);
return 0;
}
结果:691677274345