gpt4 book ai didi

c# - 结束我的 for 循环的适当条件是什么?

转载 作者:行者123 更新时间:2023-11-30 21:51:37 24 4
gpt4 key购买 nike

我需要在for循环中加入以下区间(我试过用if语句,老师让我减少代码量)。

Intervals (Pizza Diameters)   
12 - 20 = 8 slices
21 - 24 = 12 slices
25 - 30 = 16 slices
31 - 36 = 24 slices

下面的代码为我提供了非常接近我需要的输出,只是它不符合上述条件。例如,如果我输入 24,它应该只会给我 8 和 12 个切片的输出。

int[] pizzaSlices = new int[4] { 8, 12, 16, 24 };

for (int i = pizzaSlices[0]; i < inputDiameter; i++) {
if (i == pizzaSlices[0] || i == pizzaSlices[1] || i == pizzaSlices[2] ||
i == pizzaSlices[3]) {

Console.WriteLine("cut in " + i + " slices results in a slice area of " +
Math.Round(areaOfThePizza / i, 2) + " per slices");

}
}

当前输出:

期望的输出:

最佳答案

我忍不住添加了一个有点像 LINQ 的解决方案:

[Test]
[TestCase(37, Result = 0)]
[TestCase(36, Result = 24)]
[TestCase(35, Result = 24)]
[TestCase(30, Result = 16)]
[TestCase(29, Result = 16)]
[TestCase(26, Result = 16)]
[TestCase(22, Result = 12)]
[TestCase(12, Result = 8)]
[TestCase(11, Result = 0)]
[TestCase(10, Result = 0)]
public int GetNumberOfSlices(int diameter)
{
var pizzas = new[] {
new[] { 11, 0 },
new[] { 20, 8 },
new[] { 24, 12 },
new[] { 30, 16 },
new[] { 36, 24 }
};
var pizza = pizzas.FirstOrDefault(p => diameter <= p[0]);

return pizza == null ? 0 : pizza[1];
}

关于c# - 结束我的 for 循环的适当条件是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35498719/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com