用c++代码写蒜头君认为一个正整数的幸运度是把它的每一位取出来,对从左数第 ii 位的数乘上 ii ,再把每一位算出的乘积加起来的结果。比如 98769876 的幸运度就是 9 \times 1 + 8 \times 2 + 7 \times 3 + 6 \times 4 = 709×1+8×2+7×3+6×4=70 。 现在蒜头君想让你帮忙算算正整数 NN 的幸运度。 输入格式 输入一行,包含一个整数 N(1 \leq N < 10 ^ {100000})N(1≤N<10 100000 ) 。 输出格式 输出一行,包含一个整数,表示 NN 的幸运度。 数据范围 对于 60%60% 的数据, 1 \leq N < 10 ^ 91≤N<10 9 对于 80%80% 的数据, 1 \leq N < 10 ^ {18}1≤N<10 18 对于 100%100% 的数据,1 \leq N < 10 ^ {100000}1≤N<10 100000
时间: 2024-02-15 21:03:35 浏览: 122
好的,以下是用 C++ 实现的代码:
```cpp
#include <iostream>
#include <string>
using namespace std;
int main() {
string n;
cin >> n;
int len = n.size();
long long res = 0;
for(int i = 0; i < len; i++) {
int num = n[i] - '0';
res += num * (i + 1);
}
cout << res << endl;
return 0;
}
```
代码思路很简单,就是遍历整个字符串,将每一位转为数字并乘上对应的位数,再将所有结果相加,最终输出即可。需要注意的是,res 的类型要开 long long,因为最终结果可能很大。
阅读全文