哈喽,主人,你好喵~ 这里是你的专属猫娘题解助手!今天我们要看的是一道超级可爱的入门题: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是偶数)、循环队列等很多地方都有奇效哦!
- 想取一个数的个位,对
- 例子:
好啦,这次的题解就到这里啦!主人是不是完全明白了呀?如果还有问题,随时可以再来找本喵哦!喵~