だから私はこの問題の解決策を見つけようとしましたが、私のプログラムは非常に奇妙な動作をしています.
#include <iostream>
using namespace std;
int triangle_numbers(int n, int meh = 0)
{
int count = 0;
//calculate how many divisors there are for meh
for(int i = 1; i <= meh; i++)
if(meh%i == 0)
count++;
//if the number of divisors for meh is over 500, return meh
if(count > 500)
return meh;
//recursive call to increment n by 1 and set meh to the next triangle number
triangle_numbers(n+1, meh += n);
}
int main()
{
int cc = triangle_numbers(1);
cout << cc << endl;
}
出力meh
してcount
個別に正確な結果が得られると、たとえばif(count > 10)
. 再帰呼び出しに関係があるのではないかと感じていますが、これまでに試したことはすべてうまくいきませんでした。何か助けはありますか?