【问题标题】:C# Operator Modulus?C# 运算符模数?
【发布时间】:2015-09-22 05:39:24
【问题描述】:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace WholeNumbers1
{
    class Program
    {
        static void Main(string[] args)
        {
            int sum = 0;

            int Threedigitnumber;


            Console.WriteLine("Enter in three whole numbers");
            Threedigitnumber = int.Parse(Console.ReadLine());

            sum = sum + (Threedigitnumber % 10);    // Add third digit to sum
            sum = sum + (Threedigitnumber / 10) % 10; // Add seconed digit to sum
            sum = sum + (Threedigitnumber / 100); // Add first digit to sum

            Console.WriteLine("{0} -> {1}", Threedigitnumber, sum);
            Console.ReadKey();
        }
    }
}

有人可以向我解释一下这段代码如何以及为什么可以计算三个数字的总和吗?我对 % 究竟是如何工作的以及为什么这里需要除法感到困惑?这是如何工作的?

【问题讨论】:

  • Modulus 返回“一侧”,(整数)除法“另一侧”。记下每个单独操作后的值,看看发生了什么。
  • “边”是什么意思?
  • 在每个单独的操作之后记下值以查看发生了什么。 t % 10 是什么? t / 10 是什么? (t / 10) % 10 是什么? t / 100 是什么?
  • 你如何计算 %
  • stackoverflow.com/questions/3427602/c-sharp-modulus-operator(请记住它因语言而异;但这是 C#,用于正整数类型的值)。 stackoverflow.com/questions/21759390/…linqpad.net 也是一个很好的工具

标签: c# console sum modulus


【解决方案1】:

你在这里尝试做的是计算数字的总和。

当你输入让我们说是 123

1) sum = sum + (Threedigitnumber % 10);

(Threedigitnumber % 10); 返回余数,即当您除以 123/10 时,余数为 3。所以此时的总和为 3

2) sum = sum + (Threedigitnumber / 10) % 10;

(Threedigitnumber / 10) 返回商,即除以 123/10 商为 12,当您再次调用 mod (%) 时,它返回余数为 2 (12%10=2),然后将其添加到现在变为 3+2=5 的总和中;

3) sum = sum + (Threedigitnumber / 100);

(Threedigitnumber / 100) 返回商,即当您将 123 除以 100 时,它输出 1。将 1 加到您的总和后,您的总和现在变为 3+2+1=6

这是一种计算数字总和的糟糕方法。更有效的方法是

        int num, sum = 0, r;
        Console.WriteLine("Enter a Number : ");
        num = int.Parse(Console.ReadLine());
        while (num != 0)
        {
            r = num % 10;
            num = num / 10;
            sum = sum + r;
        }
        Console.WriteLine("Sum of Digits of the Number : "+sum);
        Console.ReadLine();

【讨论】:

    【解决方案2】:

    假设你介绍了 123。

    Step 1: 123 % 10 = 3; 
            Sum = 3
    Step 2: 123 / 10 = 12;
            12 % 10 = 2;
            Sum = 5
    Step 3: 123 / 100 = 1;
            Sum = 6;
    

    【讨论】:

      【解决方案3】:

      模数表示除法后的余数。在这种情况下,它用于隔离个位和十位的数字。任何mod 10 都会给你一个数字。这是除以 10 后的余数。所以175 / 10 = 17,而175 % 10 = 5。为了得到十位,他们首先除以 10,这个除法完全放弃了一个位(因为这是整数运算)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-02-23
        • 2011-03-26
        • 2012-07-16
        • 1970-01-01
        • 2012-04-15
        • 2021-02-20
        • 2012-08-18
        • 2015-05-08
        相关资源
        最近更新 更多