Project Euler:Problem 76 Counting summations

It is possible to write five as a sum in exactly six different ways:

4 + 13 + 23 + 1 + 12 + 2 + 12 + 1 + 1 + 11 + 1 + 1 + 1 + 1

How many different ways can one hundred be written as a sum of at least two positive integers?

#include <iostream>using namespace std;int c = 0;//累划分数void p(int n, int a[], int m)//m表示每一种划分的加数的个数{int i;if (n == 0){c++;//int i;//for (i = 0; i < m – 1; i++)//cout << a[i] << "+";//cout << a[m – 1] << endl;}elsefor (i = n; i >= 1; i–){if (m == 0 || i <= a[m – 1])//要保证下一个划分因子不大于上一个划分因子{a[m] = i;p(n – i, a, m + 1);}}}void main(void){int n;int a[200] = { 0 };//存储整数n的划分printf("输入要被划分的整数: ");cin >> n;p(n, a, 0);cout << "整数" << n << "的划分数是:" << c-1 << "种。" << endl;system("pause");}

版权声明:本文为博主原创文章,,未经博主允许不得转载。

上帝助自助者。

Project Euler:Problem 76 Counting summations

相关文章:

你感兴趣的文章:

标签云: