C#中计算五位数各位数字之和

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp24
{
    internal class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("请输入一个五位数:");
            int num = int.Parse(Console.ReadLine());
            int sum = 0;
            int single = num % 10;
            int ten = num / 10 % 10;
            int hundred = num / 100 % 10;
            int thousand = num / 1000 % 10;
            int million = num / 10000;
            sum = single + ten + hundred + thousand + million;
            Console.WriteLine("数字{0}各位数之和为:{1}",num,sum);
            
        }
    }
}

在 C# 中,/% 是两个常用的算术运算符,它们用于对数字进行不同类型的除法操作。以下是对它们的详细解释:

/ 运算符

/ 是除法运算符,用来执行除法操作。它的行为取决于操作数的类型:

  • 整数除法(整型数):如果两个操作数都是整数,/ 执行的是整数除法,结果会被截断(即舍去小数部分,只保留整数部分)。

    例如:

    int result = 7 / 3; // result = 2,余数部分被舍弃
    

    在上述例子中,7 / 3 结果为 2,而余数(1)被丢弃了。

  • 浮点除法(浮点型数):如果其中一个操作数是浮点类型(如 floatdouble),/ 会执行浮点除法,并返回一个包含小数的结果。

    例如:

    double result = 7.0 / 3; // result = 2.3333...
    

    在这个例子中,7.0 / 3 结果是 2.3333...,即包括小数部分。

在代码中的应用:

int thousand = num / 1000;
  • 这里,num / 1000 表示将 num 除以 1000,结果是去掉个位、十位、百位和千位后,剩下的万位数(整数部分)。例如,如果 num = 12345,则 12345 / 1000 = 12,返回的是整数部分。

% 运算符

% 是取余(模)运算符,用来返回除法运算后的余数。

  • 余数运算a % b 表示用 a 除以 b,并返回余数。

    例如:

    int result = 7 % 3; // result = 1,7 除以 3 的余数是 1
    

    另一个例子:

    int result = 9 % 4; // result = 1,9 除以 4 的余数是 1
    

    这里的 7 % 3 的结果是 1,因为 7 除以 3 商是 2,余数是 1

在代码中的应用:

int single = num % 10;
  • 这行代码通过 num % 10 获取 num 的个位数。具体来说,num % 10 计算的是 num 除以 10 的余数,余数就是个位数字。

    例如:

    • 如果 num = 12345,则 12345 % 10 = 5,个位数为 5
    • 如果 num = 9876,则 9876 % 10 = 6,个位数为 6
int ten = num / 10 % 10;
  • 这行代码首先通过 num / 10 去掉了个位数,然后再对结果执行 % 10 操作来提取十位数。

    例如:

    • 如果 num = 12345,首先 12345 / 10 = 1234,然后 1234 % 10 = 4,十位数是 4
    • 如果 num = 9876,首先 9876 / 10 = 987,然后 987 % 10 = 7,十位数是 7

总结:

  • / 是整数除法,结果去掉小数部分,仅保留商的整数部分。
  • % 是取余运算,返回除法后的余数,通常用来提取某一位数字。

在这段代码中,/% 被配合使用,来提取输入数字的不同位的值(个位、十位、百位等),并最终计算出这些位数的和。

% 运算符的扩展规律

1. num % 100

num % 100 返回的是数字的 最后两位,即个位和十位数。

  • 例子
    • 12345 % 100 = 45(返回最后两位 45)。
    • 9876 % 100 = 76(返回最后两位 76)。

2. num % 1000

num % 1000 返回的是数字的 最后三位,即个位、十位和百位数。

  • 例子
    • 12345 % 1000 = 345(返回最后三位 345)。
    • 9876 % 1000 = 876(返回最后三位 876)。

3. num % 10000

num % 10000 返回的是数字的 最后四位,即个位、十位、百位和千位数。

  • 例子
    • 12345 % 10000 = 2345(返回最后四位 2345)。
    • 9876 % 10000 = 9876(返回所有四位 9876,因为它已经是四位数)。

4. num % 100000

num % 100000 返回的是数字的 最后五位,即个位、十位、百位、千位和万位数。

  • 例子
    • 12345 % 100000 = 12345(返回整个数字 12345,因为它已经是五位数)。
    • 9876 % 100000 = 9876(返回所有四位 9876,因为它没有达到五位数)。

结合 /% 来提取各位数

我们可以结合 /% 运算符来提取不同位数的数字,无论是个位、十位、百位、千位,甚至是更高位数。

示例:提取各位数

假设数字 num = 12345,我们来总结一下如何提取不同的位数:

  • 个位数num % 10

    • 12345 % 10 = 5(个位数是 5
  • 十位数(num / 10) % 10

    • 12345 / 10 = 12341234 % 10 = 4(十位数是 4
  • 百位数(num / 100) % 10

    • 12345 / 100 = 123123 % 10 = 3(百位数是 3
  • 千位数(num / 1000) % 10

    • 12345 / 1000 = 1212 % 10 = 2(千位数是 2
  • 万位数(num / 10000) % 10

    • 12345 / 10000 = 11 % 10 = 1(万位数是 1

提取更多位数:

假设数字 num = 123456789,我们来提取其更高的位数:

  • 万位数(num / 10000) % 10

    • 123456789 / 10000 = 1234512345 % 10 = 5(万位数是 5
  • 十万位数(num / 100000) % 10

    • 123456789 / 100000 = 12341234 % 10 = 4(十万位数是 4
  • 百万位数(num / 1000000) % 10

    • 123456789 / 1000000 = 123123 % 10 = 3(百万位数是 3
  • 千万位数(num / 10000000) % 10

    • 123456789 / 10000000 = 1212 % 10 = 2(千万位数是 2
  • 亿位数(num / 100000000) % 10

    • 123456789 / 100000000 = 11 % 10 = 1(亿位数是 1

总结 /% 的扩展规律

  • num / 10:去掉个位数,返回数字的高位部分。
  • num % 10:返回数字的个位数。
  • num / 100:去掉个位和十位数,返回数字的百位及以上部分。
  • num % 100:返回数字的最后两位数(即十位和个位)。
  • num / 1000:去掉个位、十位和百位数,返回数字的千位及以上部分。
  • num % 1000:返回数字的最后三位数(即百位、十位和个位)。
  • num / 10000:去掉个位、十位、百位和千位数,返回数字的万位及以上部分。
  • num % 10000:返回数字的最后四位数(即千位、百位、十位和个位)。
  • num / 100000:去掉个位、十位、百位、千位和万位数,返回数字的十万位及以上部分。
  • num % 100000:返回数字的最后五位数,依此类推。

通过这些规律,/% 可以帮助我们灵活地提取数字的任意一位或多位数。

换个思考方式,如果我们先使用 % 运算符再使用 / 运算符,我们依然能够提取数字的各个位数,不过思考顺序和解释方式会有所不同。

%/ 运算的规律

这种思考方式可以通过先对数字进行取余操作(获取特定的末尾部分),再进行整除操作(去除多余的低位数字)。这意味着我们先得到数字的某一部分,然后通过整除获取剩余部分。

1. num % 10/ 的组合

  • num % 10 提取个位数。
  • (num % 10) / 1 其实就是 num % 10,因为个位数是一个单独的数字。

实际上,% 10 操作本身就是从数值中提取最后一位,因此对于个位数来说,先做 % 10 后做 / 1 是多余的。

2. 提取其他位数的思路:

对于更高的位数,我们可以结合 %/ 来提取。

具体操作的规律

个位数

  • 操作num % 10
    • 解释:先使用 % 10 获取个位数。
    • 例子12345 % 10 = 5(个位数是 5)。

十位数

  • 操作(num % 100) / 10
    • 解释:先通过 % 100 获取数字的最后两位(即十位和个位),然后使用 / 10 去掉个位数,留下十位数。
    • 例子12345 % 100 = 45,然后 45 / 10 = 4(十位数是 4)。

百位数

  • 操作(num % 1000) / 100
    • 解释:先通过 % 1000 获取数字的最后三位(即百位、十位、个位),然后使用 / 100 去掉十位和个位,留下百位数。
    • 例子12345 % 1000 = 345,然后 345 / 100 = 3(百位数是 3)。

千位数

  • 操作(num % 10000) / 1000
    • 解释:先通过 % 10000 获取数字的最后四位(即千位、百位、十位、个位),然后使用 / 1000 去掉百位、十位和个位,留下千位数。
    • 例子12345 % 10000 = 2345,然后 2345 / 1000 = 2(千位数是 2)。

万位数

  • 操作(num % 100000) / 10000
    • 解释:先通过 % 100000 获取数字的最后五位(即万位、千位、百位、十位、个位),然后使用 / 10000 去掉千位、百位、十位和个位,留下万位数。
    • 例子12345 % 100000 = 12345,然后 12345 / 10000 = 1(万位数是 1)。

综合例子

假设 num = 12345,我们来一步步提取各位数。

  • 个位数num % 10 = 12345 % 10 = 5

    • 解释:直接提取个位数。
  • 十位数(num % 100) / 10 = (12345 % 100) / 10 = 45 / 10 = 4

    • 解释:先获取 45,然后去掉个位数,剩下 4,就是十位数。
  • 百位数(num % 1000) / 100 = (12345 % 1000) / 100 = 345 / 100 = 3

    • 解释:先获取 345,然后去掉十位和个位,剩下 3,就是百位数。
  • 千位数(num % 10000) / 1000 = (12345 % 10000) / 1000 = 2345 / 1000 = 2

    • 解释:先获取 2345,然后去掉百位、十位和个位,剩下 2,就是千位数。
  • 万位数(num % 100000) / 10000 = (12345 % 100000) / 10000 = 12345 / 10000 = 1

    • 解释:直接获取 12345,然后去掉千位、百位、十位和个位,剩下 1,就是万位数。

总结

通过 %/ 运算的结合,我们依然可以提取数字的任意一位数。按照%/ 的方式:

  • num % 10:提取个位数。
  • (num % 100) / 10:提取十位数。
  • (num % 1000) / 100:提取百位数。
  • (num % 10000) / 1000:提取千位数。
  • (num % 100000) / 10000:提取万位数。

% 先提取出数字的末尾部分,然后 / 用于去掉多余的低位部分,得到想要的位数。