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)被丢弃了。 -
浮点除法(浮点型数):如果其中一个操作数是浮点类型(如
float或double),/会执行浮点除法,并返回一个包含小数的结果。例如:
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 % 1012345 % 10 = 5(个位数是5)
-
十位数:
(num / 10) % 1012345 / 10 = 1234,1234 % 10 = 4(十位数是4)
-
百位数:
(num / 100) % 1012345 / 100 = 123,123 % 10 = 3(百位数是3)
-
千位数:
(num / 1000) % 1012345 / 1000 = 12,12 % 10 = 2(千位数是2)
-
万位数:
(num / 10000) % 1012345 / 10000 = 1,1 % 10 = 1(万位数是1)
提取更多位数:
假设数字 num = 123456789,我们来提取其更高的位数:
-
万位数:
(num / 10000) % 10123456789 / 10000 = 12345,12345 % 10 = 5(万位数是5)
-
十万位数:
(num / 100000) % 10123456789 / 100000 = 1234,1234 % 10 = 4(十万位数是4)
-
百万位数:
(num / 1000000) % 10123456789 / 1000000 = 123,123 % 10 = 3(百万位数是3)
-
千万位数:
(num / 10000000) % 10123456789 / 10000000 = 12,12 % 10 = 2(千万位数是2)
-
亿位数:
(num / 100000000) % 10123456789 / 100000000 = 1,1 % 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:提取万位数。
% 先提取出数字的末尾部分,然后 / 用于去掉多余的低位部分,得到想要的位数。