【CCF CSP-20151201】数位之和
题意概述
给定一个十进制整数 n,输出 n 的各位数字之和。
输入输出格式
输入一个整数 n。
输出一个整数,表示答案。
数据规模
0 ≤ n ≤ 10 9 0 \le n \le{10}^9 0≤n≤109
算法设计
我们可以将输入存储在一个 string 类型变量中。然后我们可以利用 accumulate 函数求整个字符串中所有数字之和,注意,由于 string 类型中存储的是数字字符,不是真正的数字,在求和的过程中需要在每个数字字符的基础上减去字符0
所表示的 ASCII 码。
C++代码
#include <bits/stdc++.h>
using namespace std;
using gg = long long;
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
string si;
cin >> si;
cout << accumulate(si.begin(), si.end(), 0,
[](gg a, char c) { return a + c - '0'; });
return 0;
}