我需要一个简单的C#程序的帮助。简单但我不知道解决方案。问题出在这里:我需要按顺序循环(或在屏幕上打印)所有数字:2,-3,4,-5,6,-7等,直到它们达到100。 你有什么想法怎么做?现在我做了类似的事情:
for (int i = -2; i <= 100; i += 1)
{
Console.WriteLine(i);
}
但是我不能像我想要的那样让它工作,我知道我在i + = 1部分做错了但我无法弄清楚如何做到这一点!感谢您的支持。
答案 0 :(得分:5)
您可以在奇数上使用-1
多个,因此请使用%
operator:
for (int i = 2; i <= 100; i++)
{
int val = i % 2 == 1 ? i * -1 : i;
Console.WriteLine(val);
}
答案 1 :(得分:1)
如果我们使用modulo
这些步骤非常直截了当。如果我们注意到它与打印2-100的解决方案相同但是有一点扭曲,对于奇数位置,数字i
应该是他的负号。因此解决方案将是相同的。
<强>步骤:强>
i
为偶数,则将其乘以i
当然会产生。否则,这意味着它是奇数,因此导致
乘以-1,得minus i
。<强>代码强>
for (int i = 2; i <= 100; i++)
{
Console.WriteLine(i * (i%2 == 0 ? 1 : -1));
}
答案 2 :(得分:1)
for(int i=2;i<=100;++i){
Console.WriteLine(i % 2 == 1 ? -i : i);
}
答案 3 :(得分:0)
你应该逐个从2迭代到100(是的,所有都是正值) 然后在循环体中,您应该在每次迭代时反转符号(通过乘以“-1”)并在屏幕上打印结果。
答案 4 :(得分:0)
使用按位并发现奇数:
for (int i = 2; i <= 100; i += 1)
{
int toPrint = i
if((i & 1)==1)
{
// It's odd
toPrint = -toPrint;
}
Console.WriteLine(toPrint);
}
答案 5 :(得分:0)
我们都在学校完成了这项任务:
Enumerable.Range(2, Int32.MaxValue - 1)
.TakeWhile(i => i <= 100)
.Select(i => i % 2 == 0 ? i : -i)
.ToList()
.ForEach(Console.WriteLine);
答案 6 :(得分:0)
static void Main(string[] args)
{
for (int i = 2; i <= 100; i++)
{
if (i % 2 == 1)
{
int j = -i;
Console.WriteLine(j);
}
else
Console.WriteLine(i);
}
Console.ReadLine();
}