私はクラスについて宿題について質問があり、繰り返しを使ってn番目のフィボナッチ数を返す方法を知る必要があります(再帰は許されません)。N番目のフィボナッチを返すと、シーケンスに番号が付けられますか?
これを行う方法についてのヒントが必要なので、間違っていることをよりよく理解することができます。私はprogram.csの中のコンソールに出力します。したがって、以下のコードにはありません。
私は、これはトリックを行うべきだと思う// Q1)
//
// Return the Nth Fibonacci number in the sequence
//
// Input: uint n (which number to get)
// Output: The nth fibonacci number
//
public static UInt64 GetNthFibonacciNumber(uint n)
{
// Return the nth fibonacci number based on n.
if (n == 0 || n == 1)
{
return 1;
}
// The basic Fibonacci sequence is
// 1, 1, 2, 3, 5, 8, 13, 21, 34...
// f(0) = 1
// f(1) = 1
// f(n) = f(n-1) + f(n-2)
///////////////
//my code is below this comment
uint a = 0;
uint b = 1;
for (uint i = 0; i < n; i++)
{
n = b + a;
a = b;
b = n;
}
return n;
あなたは 'N'を再利用しています。これは、最初の反復後にループ条件を間違ってしまいます。 – harold
あなたのforループで 'n'を変更するべきではありません。 – Shmiddty
うわー私は愚か者だと思う男、プログラマブルなことに感謝 – user1766351