分解不同自然数之和,乘积最大
#include<bits/stdc++.h> using namespace std; //根据数学知识,分成若干个2和3 int maxn=0; //最大乘积 void find(int num,int cur) { if(cur>maxn){ maxn=cur; } // cout<<cur<<endl; if(num==0||num==1) return; if(num>=3){ find(num-2,cur*2); find(num-3,cur*3); } if(num==2){ find(num-2,cur*2); } } int main() { int num; // ifstream in; // in.open("input.txt"); // in>>num; // in.close(); cin>>num; find(num,1); // ofstream out; // out.open("output.txt"); // out<<maxn; // out.close(); cout<<maxn; return 0; }