C# - 按列表包含的值数组织列表 - C#

C# - Organizing a list of lists by the number of values they contain - C#

提问人:Louis 提问时间:11/1/2023 更新时间:11/1/2023 访问量:35

问:

嘿,我试图解决编码问题。 我想找到起始价值低于 100 万的最大 collatz sequenz。 在 collatz sequenz 中,如果起始值是偶数,则除以 2,如果是偶数,则乘以 3 + 1。 为此,我想用 while(i != 1) 循环 an 到 if 语句来做一个 for 循环来做方程。对于每个数字,我想制作一个新列表并将每个列表放在另一个列表中。然后,我想按它们包含的值数来组织它们,以便我可以返回最大的 sequenz。 任何人都可以告诉我如何在 c# 中编译它。 我非常感谢您的帮助。

    for(int i = 2; i < 1000000; i++)
    {
        while (i != 1)
        {
            List<int> z = new List<int>();
            z.Add(i);
            if (i % 2 == 0)
            {
                i = i / 2;
                z.Add((int)i);
            }
            if (i % 2 != 0)
            {
                i = i * 3 + 1;
                z.Add((int)i);
            }
        }
    }
c# 列表

评论

0赞 MakePeaceGreatAgain 11/1/2023
以上不是你想做的吗?您应该提供一些示例输入和预期结果。

答:

2赞 JonasH 11/1/2023 #1

像这样的东西?


var listOfLists = new List<List<int>>();
for(int i = 2; i < 1000000; i++)
{
    while (i != 1)
    {
         List<int> z = new List<int>();
         ...
    }     
    listOfLists.Add(z);
}
...
var largest = listOfLists.MaxBy(list => list.Count);
var ordered = listOfLists.OrderByDescending(list => list.Count).ToList();