计算在C ++中将数字分为几部分的方式数量
我们给定一个正数N。目标是计算将N划分为3个部分的方式。零件可以相等或可以不相等。N在[1,5000]范围内。
我们将通过为数字的3个部分使用三个for循环来做到这一点。在最内层的循环中检查这三个总数之和是否等于N。如果为true,则增加路数。
让我们通过示例来理解。
输入-N = 5
输出-将N分为3部分的方式数量:2
解释− 5可以表示为(1,1,3)和(1,2,2)的总和
输入-N = 9
输出-将N分为3部分的方式数量:7
解释− 9可以表示为以下各项的总和:(1、1、7),(1、2、6),(1、3、5),(1、4、4),(2、2、5), (2,3,4)和(3,3,3)。
以下程序中使用的方法如下
我们将整数N初始化为1到5000之间的值。
函数divideN(int n)取n,并返回将n分为3部分的方式数量。
将初始变量计数设为0,以获取路数。
对数字的每个部分使用三个for循环遍历。
1 <= i <n的最外层循环,i <= j <n的内层循环,最内层j <= k <n。
检查i,j和k的总和是否等于n。如果为true,则增加计数。
在所有循环结束时,计数将具有将n分为三部分的总数。
返回计数结果。
示例
#include <bits/stdc++.h>using namespace std;
int divideN(int n){
int count = 0;
for (int i = 1; i < n; i++){
for (int j = i ; j < n; j++){
for (int k = j; k < n; k++){
int sum=i+j+k;
if(sum==n)
{ count++; }
}
}
}
return count;
}
int main(){
int N=500;
cout <<endl<< "Number of ways to divide N in 3 parts : "<<divideN(N);
return 0;
}
输出结果
如果我们运行上面的代码,它将生成以下输出-
Number of ways to divide N in 3 parts: 20833
以上是 计算在C ++中将数字分为几部分的方式数量 的全部内容, 来源链接: utcz.com/z/340939.html