计算在C ++中将'n'表示为奇数和的计数方法
给定整数n作为输入。目的是找到可以将“n”表示为奇数整数之和的方式数量。例如,如果n为3,则可以表示为总和(1+1+1)和(3),因此总共有2种方式。
例如
输入值
n=6输出结果
Count of ways to express ‘n’ as sum of odd integers are: 8
说明
The ways in which we can express ‘n’ as sum of odd integers − 1. 1+1+1+1+1+1 2. 3+1+1+1 3. 1+3+1+1 4. 1+1+3+1 5. 1+1+1+3 6. 3+3 7. 1+5 8. 5+1
输入值
n=9输出结果
Count of ways to express ‘n’ as sum of odd integers are: 34
说明
The some of the ways in which we can express ‘n’ as sum of odd integers: 1. 1+1+1+1+1+1+1+1+1 2. 3+3+3 3. 5+3+1 4. 7+1+1 5. ….and other such combinations
以下程序中使用的方法如下-
在这种方法中,我们将检查将数字表示为来自第n-1和第n-2个数字的先前数字的奇数整数之和的方式。方式将是方式(n-1)+方式(n-2)。
以整数n作为输入。
功能odd_ways(intn)接受一个数字,然后返回将“n”表示为奇数整数之和的方式计数。
取长度为n+1的数组arr来存储用于将数字表示为奇数整数之和的计数方式。
对于数字0,没有这种方法,因此请将arr[0]设置为0。
对于数字1,只有一种方法,因此将arr[1]设置为1。
对于其余的数字,我们可以在2到n之间为i设置arr[i]和arr[i-1]+arr[i-2]。
最后,对于n表示为奇数整数之和的方式数,我们有arr[n]。
返回arr[n]作为结果。
示例
#include<iostream> using namespace std; int odd_ways(int n){ int arr[n+1]; arr[0] = 0; arr[1] = 1; for(int i = 2; i <= n; i++){ arr[i] = arr[i-1] + arr[i-2]; } return arr[n]; } int main(){ int n = 6; cout<<"Count of ways to express ‘n’ as sum of odd integers are: "<<odd_ways(n); return 0; }输出结果
如果我们运行上面的代码,它将生成以下输出-
Count of ways to express ‘n’ as sum of odd integers are: 8