我試圖讓我的表演技巧(不存在)達到標準,但遇到了將公式寫入代碼的問題。這是我正在嘗試的公式 - 引用未引用 - 「轉換」爲代碼。雙線性序列給出奇數結果
考慮其中u被定義爲序列u如下:
數
u(0) = 1
是u
第一個。 對於u
中的每個x
,則y = 2 * x + 1
和z = 3 * x + 1
也必須在u
中。u
中沒有其他的數字。 例如:u = [1, 3, 4, 7, 9, 10, 13, 15, 19, 21, 22, 27, ...]
1
給3
和4
,然後3
給7
和10
,4
給9
和13
,然後7
給15
和22
等等......
而這就是我目前爲止:
using System;
using System.Collections.Generic;
public class Program
{
public static void Main()
{
Console.WriteLine(DblLinear(10));
//Expected result: 22
Console.WriteLine(DblLinear(20));
//Expected result: 57
Console.WriteLine(DblLinear(30));
//Expected result: 91
Console.WriteLine(DblLinear(50));
//Expected result: 175
}
public static int DblLinear (int n)
{
List<int> linArr = new List<int>();
linArr.Add(1);
int i = 0;
while(linArr.Count < n)
{
linArr.Add((2 * linArr[i]) + 1);
linArr.Add((3 * linArr[i]) + 1);
linArr.Sort();
i++;
}
return linArr[n - 1];
}
}
計算是正確的,直到它打到27.之後,它只是狂奔,我不知道它做錯了什麼。
你是否已經通過調試器完成代碼? –
在添加之前,您不檢查數字是否已經存在。你會有重複的。 – Rob