哈喽,主人,你好喵~ 这里是你的专属猫娘题解助手!今天我们要看的是一道超级可爱的入门题:1999A - A+B Again?。别看名字里有 A+B,它可和普通的 A+B 不太一样哦,但也非常简单,就让本喵带你轻松搞定它吧!
题目大意
这道题呀,超级简单的喵!
题目会给我们一个两位的正整数 n
(范围在 10 到 99 之间)。我们的任务就是,把这个两位数的十位数字和个位数字找出来,然后把它们加在一起,输出这个和。
举个例子,喵~
- 如果输入的数字是
77
,那么十位是 7,个位也是 7,它们的和就是7 + 7 = 14
。 - 如果输入的数字是
21
,那么十位是 2,个位是 1,它们的和就是2 + 1 = 3
。 - 如果输入的数字是
40
,那么十位是 4,个位是 0,它们的和就是4 + 0 = 4
。
是不是很简单呀?
题解方法
要怎么把一个两位数的十位和个位拆开呢?其实很简单喵!我们只需要用到小学就学过的数学知识,再结合一点点编程的小技巧就好啦。
获取十位数字:对于一个两位数
n
,我们只要用它做整数除法n / 10
,就可以得到它的十位数字啦。因为在整数除法里,小数点后面的部分会被无情地丢掉,喵呜。- 比如
77 / 10
的结果就是7
。 21 / 10
的结果就是2
。
- 比如
获取个位数字:那...个位数字要怎么办呢?这时候就要请出我们的“取余”小能手
%
(Modulo Operator) 啦!n % 10
就能得到n
除以 10 的余数,这个余数正好就是我们想要的个位数字,喵~- 比如
77 % 10
的结果就是7
。 21 % 10
的结果就是1
。
- 比如
拿到两个数字之后,把它们加起来,就是最终的答案啦!
题解
下面是 C++ 的代码实现,本喵加了一些注释,方便主人理解哦。
cpp
#include <iostream>
// 这个函数用来解决单个测试用例,喵~
void solve() {
int n;
// 从输入中读取这个两位数 n
std::cin >> n;
// 使用整数除法 / 10 来得到十位数字
int first_digit = n / 10;
// 使用取余(模)运算 % 10 来得到个位数字
int second_digit = n % 10;
// 把两个数字加起来
int sum = first_digit + second_digit;
// 输出结果,并加上一个换行符,这是个好习惯哦
std::cout << sum << "\n";
}
int main() {
// 这两行是为了让输入输出快一点点,在比赛里很有用喵
std::ios_base::sync_with_stdio(false);
std::cin.tie(NULL);
// 读取测试用例的数量 t
int t;
std::cin >> t;
// 循环 t 次,每次都调用 solve() 函数解决一个问题
while (t--) {
solve();
}
return 0;
}
知识点介绍
这道题虽然简单,但它用到的两个运算符在编程里可是非常有用的哦!
整数除法 (Integer Division) 在 C++ (以及很多其他编程语言) 里,当两个整数相除时,如果结果有小数,小数部分会被直接舍去,而不是四舍五入。这个过程叫做取整或截断。
- 例子:
99 / 10
的结果是9
,而不是9.9
。15 / 4
的结果是3
,而不是3.75
。 - 用途:这个特性非常适合用来从一个整数中分离出它的高位。比如想得到一个数
x
的百位数字,可以先用x / 100
得到x
有多少个100
,再对10
取余,即(x / 100) % 10
。
- 例子:
取余/模运算 (Modulo Operation) 这个运算符的符号是
%
,它用来计算两个整数相除后的余数。- 例子:
10 % 3
的结果是1
(因为 10 除以 3 商 3 余 1)。99 % 10
的结果是9
。 - 用途:取余运算在分离数字的低位时超级好用!
- 想取一个数的个位,对
10
取余就行了 (x % 10
)。 - 想取一个数的末两位,对
100
取余就行了 (x % 100
)。 - 以此类推,是不是很方便呀?它在判断奇偶数 (
x % 2 == 0
是偶数)、循环队列等很多地方都有奇效哦!
- 想取一个数的个位,对
- 例子:
好啦,这次的题解就到这里啦!主人是不是完全明白了呀?如果还有问题,随时可以再来找本喵哦!喵~