gpt4 book ai didi

c# - 如何从递增的整数生成重复序列

转载 作者:太空宇宙 更新时间:2023-11-03 22:58:51 24 4
gpt4 key购买 nike

我需要一个函数,它将输入数字输入 int.Max 并给我一个 0 到 12 之间的数字 - 所以 1,2,3,4,5,6,7,8,9,10,11 是有效数字。

我想过按下面的方式做,但我想一定有更好的方法吧?

private static int GetNumberBetweenZeroAndTweleve(int inputNumber)
{
int result = 1;
for (int i = 1; i < inputNumber; i++)
{
// something elegant to calculate a number
result++;
if (result == 12)
result = 1;
}

return result;
}

示例输入=>输出:

1 => 1
2 => 2
3 => 3
4 => 4
5 => 5
6 => 6
7 => 7
8 => 8
9 => 9
10 => 10
11 => 11
12 => 1
13 => 2
14 => 3

等等

最佳答案

您不需要任何循环(在inputNumber 较大的情况下可能昂贵:int.MaxValue2147483647) 但是

 private static int GetNumberBetweenZeroAndTweleve(int inputNumber) {
return inputNumber <= 0
? 1
: (inputNumber - 1) % 11 + 1;
}

测试:

var report = string.Join(Environment.NewLine, Enumerable
.Range(1, 14)
.Select(n => $"{n,2} => {GetNumberBetweenZeroAndTweleve(n),2}"));

Console.Write(report);

结果:

 1 =>  1
2 => 2
3 => 3
4 => 4
5 => 5
6 => 6
7 => 7
8 => 8
9 => 9
10 => 10
11 => 11
12 => 1
13 => 2
14 => 3

关于c# - 如何从递增的整数生成重复序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44101101/

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