2009-11-08 103 views
-7

如何以下列格式打印1至100中的数字?如何检查数字是以9结尾还是不在数字1至100

1-------------9 
10------------19 
20-------------29 
30--------------39 
40-----------49 
50-----------59 
60-----------------69 
70---------------79 
80---------------89 
90-----------------99 
+1

NNNNN%10 == 9种 – UncleBens 2009-11-08 15:39:46

+1

功课的气味给我。顺便说一句,你真的有问题吗? – AnthonyWJones 2009-11-08 15:40:01

+0

那么,什么阻止你?你有什么问题? 向我们展示你所尝试过的。 – Dipstick 2009-11-08 15:40:56

回答

14

只检查数量是否模数10等于9:

if (number % 10 == 9) … 
2
if ((num % 10) == 9) 
{ 
    // I end in 9 
} 
3

模数运算符(%)会给你一个除法的余数。当你将一个数字除以10时,“余数”会给你最后一位数字。

int lastDigit = number % 10;   // this is the remainder of (number/10) 
if (lastDigit == 9) 
{ 
    // whatever you want to do here 
} 
1
if (x == 0x09 || x == 0x13 || x == 0x1d || x == 0x27 || x == 0x31 || x == 0x3b || x == 0x45 || x == 0x4f || x == 0x59 || x == 0x63) 

if (strchr("\x09\x13\x1d\x27\x31\x3b\x45\x4f\x59\x63", x)) 

对于那些没有意义的可笑,为什么这些比x%10 == 9更疯狂?在x%10==9中,您引入了两个幻数而不是几个,并将没有条件行为的结构化问题(打印行,每行有列)转换为具有条件行为的单个循环。

+0

我原则上不能满足这个要求,但我必须说有时候我认为这些是作业问题的最佳答案。如果有人不愿意在自己的事情上找到像这样相对简单的东西,那么他们可能并不是真正意义上的计算机科学。我宁愿他们在课堂上认识到这一点,而不是在与我一起处理关键项目时。 – Toji 2009-11-08 16:15:59

+0

这可能是代码高尔夫? – bguiz 2009-11-09 06:42:28

+0

我给出了模数的答案,因为OP要求一个循环 - 但我不得不承认,这里的单循环+模数并不像两个嵌套循环那样明确。你为什么不只是发布这个解决方案? – 2009-11-09 08:25:37

-2
int i = 0; 
while (i < 100) 
{ 
    i+=1; 
    while(i % 10 != 0) 
    { 
    Console.Write(i); 
    i+=1; 
    } 
    Console.Write(Environment.NewLine); 
} 
+0

这两个while循环永远都不会停止。 – Mez 2009-11-08 15:53:03

+0

该死的,忘了增量。 – Rik 2009-11-08 16:13:16

0
for (i=1;i<=100;i++) 
{ 
    if (i%10==0) 
    { 
     if (i==10) 
     cout<<i-9<<"--------"<<i-1<<endl; 
     else 
     cout<<i-10<<"--------"<<i-1<<endl; 
    } 
} 
2
for (var i = 9; i < 100; i += 10) 
    Console.WriteLine(((i==9)?1:i-9) + "----------" + i); 

应打印几乎你问什么。

for (var i = 9; i < 100; i += 10) 
    Console.WriteLine(i); 

将打印只是你的结果

相关问题