2015-09-22 36 views
-2
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(); 
     } 
    } 
} 

有人可以请我解释一下为什么这段代码能够计算三个数字的总和吗?我很困惑%的工作原理以及为什么在这里需要分工?这个怎么用?C#运算符模数?

+0

模返回“一面”,(整数)师“另一面”。在每次单独操作后记下这些值以查看发生了什么。 – user2864740

+0

你是什么意思“方?” –

+0

记下每个单独操作后的值,看看发生了什么。什么是't%10'?什么是't/10'?什么是(t/10)%10?什么是't/100'? – user2864740

回答

1

假设你介绍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; 
+0

谢谢,这对我来说很清楚。 –

1

模量系指分割后的余数。在这种情况下,它用于隔离位置和十位数字。任何mod 10会给你在这个位置的数字。这是除以10后的余数。所以175/10 = 17,而175 % 10 = 5。为了得到十位,他们首先被分成10位,这个分母完全放弃(因为这是整数算术)。

2

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

当输入可以说是123

1)之和=总和+(Threedigitnumber%10);当你划分十分之一百二十三余数是3。所以你在这一点总和3

2)之和=

(Threedigitnumber % 10);返回其余即总和+(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

这是计算的和的可怕的方式在digits.An更有效的方法是

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