さて、私はこれを何度も書き直してきました。しかし、一番長い羽目板シーケンスが表示されるので、最も長いシーケンス関数が役立つと思っていました。しかし、私はそれを見つけるために使われた価値を見つけたり、保管したりする方法を見つけることができないようです。誰かが説明する方法があれば、私はそれを感謝します。ループ関数を再帰関数として書くにはどうすればよいですか?
int longestSequence(int n)
{
int u = n;
if(u == 1)
{
return 1;
}
else
{
return max(hailstoneLength(u), longestSequence(u-1));
}
}
私はとのトラブルを抱えている部分が私の最長の起動シーケンスである:
int hailLongestSeq(int n)
{
int k;
int longest = 0;
for(int j = 1; j <= n; j++)
{
if(hailstoneLength(j) > longest)
{
longest = hailstoneLength(j);
k = j;
}
}
return k;
}
私は再帰にこれを作る方法がわからないんだけど、私は私が使用している人々を見て、いくつかの再帰のために気づきました私はループを使うべきではないと確信していました。 愚かな質問かもしれませんが、誰かが知っているなら、ループを再帰に変換する式はありますか?
アウトプット期待は、このようなものです:
10までの番号で始まる最長ひょうシーケンスは長さ20 を持っている10までの番号で始まる最長ひょうシーケンスが9
で始まります9のシーケンスとして20の番号の長さを有し、そしてはい1から10
これは昨日聞いたことがありませんでしたか? –
数式は、問題の点で問題に言い換えます。例:n回反復のforループは、n-1回反復のforループに対する反復です。 – perreal
いいえこれは昨日質問しませんでした。今日は午前1時にこれを提出しました – Zabe