题目描述 求一个整数各位数字之和。(该整数大于亿,位数在位以内) 输入格式 第一行为该整数。 输出格式 输出一行。 样例 输入样例 11111111111111111111 输出样例 20
时间: 2024-09-28 21:10:34 浏览: 38
题目要求我们编写一个程序,输入是一个非常大的整数(大于一亿且位数有限,比如假设最多100位),目标是计算这个整数各个位置上的数字之和。例如,输入"11111111111111111111"时,输出应为20(因为所有1相加的结果是20)。
你需要创建一个函数或算法,处理大整数并逐位累加。在实际编程中,可能会使用字符串处理的方式,将整数转换成字符数组,然后逐个字符(即每一位数字)加起来。
由于这个问题通常不会直接出现在标准输入中,你可能需要先从文件、用户输入或其他数据源读取整数,然后再进行计算。对于大整数的操作,C++库如GMP(GNU Multiple Precision Arithmetic Library)可以提供支持。
示例代码片段如下:
```cpp
#include <iostream>
#include <string>
std::string to_string(long long num) {
// 使用长整型表示大整数,并转换为字符串
}
int sumOfDigits(const std::string& num_str) {
int sum = 0;
for (char c : num_str) {
// 加上字符对应的数值
sum += static_cast<int>(c) - '0';
}
return sum;
}
int main() {
std::string input;
std::cin >> input;
int result = sumOfDigits(input);
std::cout << "Sum of digits: " << result << std::endl;
阅读全文