C#运算符模数?

时间:2015-09-22 05:39:24

标签: c# console sum modulus

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();
        }
    }
}

有人可以向我解释这段代码如何以及为什么计算三个数字的总和?我很困惑%的工作原理以及为什么需要除法?这是如何工作的?

3 个答案:

答案 0 :(得分:2)

您在这里要做的是计算数字之和。

当你输入时我们说是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();

答案 1 :(得分:1)

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

答案 2 :(得分:1)

假设您介绍123.

Manifest file