我正在尝试编写一个简单的逻辑。基于这个逻辑,我应该在项目中实现我的实际逻辑。
到目前为止,我已尝试过以下代码。
int[] num = new int[11];
for (int i = 1; i < 6; i++)
{
num[2 * (i - 1) + 1] = i;
}
foreach (var item in num)
{
Console.Write(item + " ");
}
输出为 - 0 1 0 2 0 3 0 4 0 5 0
但我希望输出为0 1 2 3 0 4 5 6 0 7 8 9 0格式。
在此代码中应该写什么 - num[2 * (i - 1) + 1]
答案 0 :(得分:2)
要获得所需的回报,请尝试以下方法:
var num = new int[12];
for (int i = 1; i < 10; i++) {
num[i + ((i - 1) / 3)] = i;
}
这会产生:0 1 2 3 0 4 5 6 0 7 8 9
。
它背后的逻辑是你需要为每组3的计算索引添加额外的1。- 1
是将三人组移动到所需的位置。
要删除前0,您必须从计算的索引中减去1。
var num = new int[11];
for (int i = 1; i < 10; i++) {
num[i - 1 + ((i - 1) / 3)] = i;
}
这会产生:1 2 3 0 4 5 6 0 7 8 9
答案 1 :(得分:0)
我并不完全遵循跳过每个第3个元素将如何产生你提到的结果。但是你需要找到一种方法来识别每个&#34;第三元素&#34;通过查看索引;这通常是使用MOD运算符(%
进行C#,检查互联网&#34;模运算&#34;)然后检查结果,index % 2 == 0
为true
每个偶数值index
或&#34;每第二个值&#34;如果指数值是连续的。
其他应该很容易理解我猜。
答案 2 :(得分:0)
int[] num = new int[11];
int j = 0;
for (int i = 1; i < 10; i++)
{
if (i%4 != 0)
{
num[i] = i - j;
}
else
{
j= j + 1;
}
}
foreach (var item in num)
{
Console.Write(item + " ");
}
Console.Read();