必对题解
2026-03-08 14:41:05
发布于:天津
12阅读
0回复
0点赞
代码如下:
#include<iostream>
using namespace std;
int main(){
//(1)定义所需输入变量
//(1.1)定义n
int n;
cin>>n;
//(1.2)定义a数组
int a[1005];
a[0]=0;
for(int i=1;i<=n;i++)cin>>a[i];
//(2)模拟“分糖果”
//(2.1)定义ans表示所需糖果个数
long long ans=0;
for(int i=1;i<=n;i++){
//(2.2)如果当前小朋友所需糖果个数大于前一个小朋友所需糖果个数则ans直接加当前小朋友所需糖果个数
if(a[i]>a[i-1])ans+=a[i];
//(2.3)如果当前小朋友所需糖果个数小于等于前一个小朋友所需糖果个数则ans加前一个小朋友所需糖果个数+1,且a[i]要和a[i-1]+1交换数值否则下一个小朋友所需糖果个数就无法比上一个小朋友所需糖果个数多
else{ans=ans+a[i-1]+1;int t=a[i-1]+1;a[i-1]=a[i];a[i]=t;}
}
//(3)输出最后结果
cout<<ans<<endl;
return 0;
}
点点赞!
不懂私信我
全部评论 1
有错可以提出
2026-03-08 来自 天津
0







有帮助,赞一个