问题描述
- 将一个数M分成N数的和,去重
- 如何将一个数M分成N数的和,比如4的几种情况:1+1+1+1,1+1+2,1+3。
其中1+1+2跟1+2+1算一种情况求代码,大神快来
解决方案
能拿原题来看吗?
表示没看懂题目
解决方案二:
主要是不知道有几个入口参数,几个出口参数
解决方案三:
#include<iostream>using namespace std;int partition(int n);int partitionHelp(int nint m){ if(n<1 ||m<1) { return 0; } else if(n==1 ||m==1) { return 1; } else if(n<m) { return partitionHelp(nn); } else if(n==m) { return 1+partitionHelp(nn-1); } else { return partitionHelp(nm-1)+partitionHelp(n-mm); }}int partition(int n){ partitionHelp(nn);}int main(){ int n; while(cin >> n){ printf(""共有%d种不重复的分解方式n"" partition(n)); } return 0;}
时间: 2024-11-02 23:22:41