A+B Again? 的题解
记住只在没有思路时使用题解,不要从它复制粘贴代码。请尊重题目和题解的作者。
在解题之前提交题解的代码会导致封禁。
在解题之前提交题解的代码会导致封禁。
作者:
概述
本题要求计算一个两位正整数的十位数字与个位数字之和。核心解法是直接对该整数进行整除和取模运算得到两个数字并相加。
分析
核心观察
对于两位正整数 ,其十位数字为
,个位数字为
,二者之和即为所求。
思路
读取整数 ,通过整数除法得到十位,通过取模得到个位,两者相加输出。由于
的范围为
到
,结果在
到
之间。
具体示例
以样例第一组 :十位
,个位
,和为
。
第二组 :十位
,个位
,和为
。
算法步骤
- 读入测试用例数
。
- 对每个测试用例,读入整数
。
- 计算十位
tens = n / 10,个位ones = n % 10。 - 输出
tens + ones。
复杂度分析
- 时间:
,每个测试用例常数时间。
- 空间:
。
实现注意事项
- 输入保证为两位正整数,无需处理边界异常。
- 可用字符串方式读取并转换字符,但整数运算更简洁。
- 快速输入输出可提高效率。
源代码
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int t;
cin >> t;
while (t--) {
int n;
cin >> n;
cout << (n / 10) + (n % 10) << '\n';
}
return 0;
}
import sys
def solve():
data = sys.stdin.read().strip().split()
if not data:
return
t = int(data[0])
out = []
for i in range(1, t + 1):
n = int(data[i])
out.append(str(n // 10 + n % 10))
sys.stdout.write("\n".join(out))
if __name__ == "__main__":
solve()
评论