根据节点的最小总数

时间:2017-05-31 12:45:37

标签: c# math tree

我想编写一个计算以下问题的函数。

我知道一棵树有4个级别,每个级别有不同数量的节点。

前2个节点 每个父节点有2个节点 每个父节点有3个节点 每个父节点的第4个节点

如果我将最少量的节点作为参数,如何计算在保持比例的同时制作树所需的节点总数。

例如,我将min节点计数作为参数40

该树保持比例的最小节点数约为56(如果我正确计算的话)。

我假设我可以计算此等式所需的节点总数

2x + 2x3y + 2x3y4z + 2x3y4zt =节点数

1 个答案:

答案 0 :(得分:1)

这应该可以解决问题:

private static int GetNodes(int min) => ((int)Math.Ceiling(min / 24.0)) * 24;

你需要知道你的号码中有多少次24,所以你将这个数除以24.然后你必须将结果四舍五入并乘以24来得到你的总节点。

修改

一些例子:

Console.WriteLine(GetNodes(1));    //  24
Console.WriteLine(GetNodes(23));   //  24
Console.WriteLine(GetNodes(24));   //  24
Console.WriteLine(GetNodes(25));   //  48
Console.WriteLine(GetNodes(60));   //  72
Console.WriteLine(GetNodes(100));  // 120
Console.WriteLine(GetNodes(150));  // 168