c++ - OUTPUT ERROR,问题是求和5000位数字cpp
问题描述
这是代码(cpp)
#include <iostream>
#include <string>
#include <numeric>//to import the accumulate function
#include <vector>
#include <algorithm>
using namespace std;
int main(){
vector<long long> vi;
string s; //this contains the long number its better not to type here
int k=0,sum=0;
for(int i=0;i<s.length();i++){
k=(int)s[i]-(int)'0';
cout<<k<<endl;
vi.push_back(k);
}
for(int i:vi){
cout<<i<<endl;
}
cout<<accumulate(vi.begin(),vi.end(),0);
}
无论我做什么,我都会得到答案 22660 我尝试使用没有累积仍然 22660,我不知道为什么会发生这种情况
解决方案
我不明白你为什么使用std::vector
. 您可以在不使用向量的情况下计算总和:
int k=0,sum=0;
for(int i=0;i<s.length();i++)
{
k = s[i]-'0';
sum += k;
}
注意:如果您对适合整数的和值有点偏执,您可以使用 an,unsigned integer
因为数字不能为负数。
推荐阅读
- swift - WKWebView 不调用导航委托方法
- pandas - PyODBC+Pandas+Read_SQL:错误:游标的连接已关闭
- java - 如何使用 Maven 将 Clojure 依赖项包含到 Java 项目中
- python - 无法使用 python 库:'paramiko' 与 AWS Lambda
- html - CSS 响应式分页
- javascript - 如何防止登录用户访问登录页面?
- python - 在这个排序算法中,元组的返回语句中的 0 索引去了哪里?
- python - Python 编程{副作用}
- reactjs - 使用 Typescript 不允许 React createContext(null)?
- javascript - 如何从数组中选择随机颜色?