【问题标题】:how to check whether the number ends with 9 or not in numbers 1to 100 [closed]如何检查数字1到100中的数字是否以9结尾[关闭]
【发布时间】:2009-11-08 15:37:22
【问题描述】:

如何按以下格式打印从 1 到 100 的数字?

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

【问题讨论】:

  • 我有家庭作业的味道。顺便说一句,你真的有问题吗?
  • 那么是什么阻止了你?你有什么问题?向我们展示您的尝试。
  • @UncleBens:闻起来像一个答案,那为什么要发表评论呢?
  • 这甚至不是很好的作业,你可以用一个循环和十个 if 语句来暴力破解它。

标签: c# c++


【解决方案1】:

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

if (number % 10 == 9) …

【讨论】:

    【解决方案2】:

    查看modulus operator

    【讨论】:

      【解决方案3】:

      模数运算符 (%) 将为您提供除法的余数。当您将一个数字除以 10 时,“余数”将为您提供最后一位。

      int lastDigit = number % 10;           // this is the remainder of (number/10)
      if (lastDigit == 9)
      {
          // whatever you want to do here
      }
      

      【讨论】:

        【解决方案4】:
        if ( ( num % 10 ) == 9 )  
        {  
          // I end in 9  
        }
        

        【讨论】:

          【解决方案5】:
          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);
          

          只打印你的结果

          【讨论】:

            【解决方案6】:
            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 中,您引入了两个幻数而不是几个,并将没有条件行为(打印行,每行有列)的结构化问题转变为具有条件行为的单个循环。

            【讨论】:

            • 原则上我不能对此表示赞同,但我不得不说,有时我认为这些是家庭作业问题的最佳答案。如果有人不愿意在这样相对简单的事情上自己解决问题,那么他们可能并不真正适合计算机科学。我宁愿他们在课堂上解决这个问题,而不是和我一起做一个关键项目。
            • 这可能是代码高尔夫吗?
            • 我给出了模数的答案,因为 OP 要求一个单循环——但我不得不承认,这里的单循环 + 模数不像两个嵌套循环那样清晰。你为什么不发布这个解决方案?
            【解决方案7】:
            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;
                }
            }
            

            【讨论】:

              【解决方案8】:
              int i = 0;
              while (i < 100)
              {
                i+=1; 
                while(i % 10 != 0)
                {
                  Console.Write(i);
                  i+=1;
                }
                Console.Write(Environment.NewLine);
              }
              

              【讨论】:

              • 这两个 while 循环永远不会停止。
              • 该死,忘记增量了。
              猜你喜欢
              • 2020-09-29
              • 1970-01-01
              • 2012-09-06
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2021-08-01
              • 1970-01-01
              相关资源
              最近更新 更多