int sum(int number, int min, int counter)
{
int temp=0, n;
n=number+temp;
if ((number>=(n/2)) & (number!=min))
{
number --;
temp ++;
while (number>=(n/2))
{
cout << number << "+"<< temp << "\n";
number --;
temp ++;
counter ++;
}
}
else if (number==1)
{
return counter;
}
sum(n-1, 1,counter);
}
int main()
{
int number,counter=1;
cout << "Please enter the number: ";
cin >> number ;
cout << "\n";
sum(number, 1, counter);
cout << counter;
return 0;
}
是否我需要它但崩潰並有一些問題。只是尋找一些提示如何改善它。用數字理論C++代碼的問題
也想確保我正確地練習遞歸。謝謝!
地址: 該計劃的重點是總計最大可能的方式一個數字可以加起來。
然後總計爲6的序列數是11(包括6本身)。
6
5+1
4+1+1
3+1+1+1
2+1+1+1+1
1+1+1+1+1+1
2+2+1+1
3+2+1
4+2
2+2+2
3+3
我也試着不要重複序列,例如2 + 2 + 1 + 1和1 + 1 + 2 + 2。
什麼是這個功能用於?請提供更多細節。 – 2010-12-08 06:59:53
你肯定想要一個合乎邏輯的在這裏:`if((number> =(n/2))&(number!= min))' – ruslik 2010-12-08 07:00:59
@HoàngLong:增加更多信息檢查出來。 – Zud 2010-12-08 07:04:19