描述
小星一个非常重要的任务,统计数据,说出一串数字,然后小星帮忙加起来,因为数据很多,会很容易看错,意识到当读到一个错误的数字时,他说 0,意思是“忽略当前的最后一个数字”。不幸的是,小星可能会反复犯错误,并对每个错误说 0。
说出来的 0 有可能也是多余的,即所有数字都错误了,但是还是在说 0,这样的 0 需要小星忽略掉,如果所有数字都错误,则总和为零。
输入描述
第一行,输入一个 n(1<=n<=100000) 表示所说的数字个数
第二行,输入 n 个数,表示说出的数字 a
i
(1<=a
i
<=10
9
)
输出描述
输出一行,表示说出正确数字之和
用例输入
10
1 3 5 4 0 0 7 0 0 6
用例输出 1
7
用例输入
4
1 0 0 0
用例输出
0
#include
#include
using namespace std;
int main() {
int n,x,y,a;
cin>>n;
for(int i=1; i>a;
if(a!=0){
y=y+a;
x=a;
}
else{
y=y-x;
}
}
if(y<0){
cout<<"0";
}
else{
cout<x=5
y=4
a=0
你不能只保存最后一个数,这样遇到连续0时会出错。比如“1 1 2 0 0”,第1个0减去2,第2个0需要减去1,于是需要同时保存1和2。所以这道题必须用数组。
不知道你这个问题是否已经解决, 如果还没有解决的话: