前天刚参加完2022程序设计小能手比赛,今天来讲解一下其中的第一道题目。
题目名为“阶梯电量”,分值60。
题目描述:(可能不怎么清楚,因为我还没拿到WPS原版)


![1652593410742488.png C1~RX{XILB[4KNE]M3V[Y0H.png](/assets/addons/ueditor/php/upload/image/20220515/1652593410742488.png)
我当时看到这道题一开始觉得很简单:不就是判断吗
结果一做:
#includeusing namespace std;
int main()
{
int u,v;
cin>>u>>v;
if(u<=2760&&u<=4800)
{
………………………………
………………………………
……………………………………
……………………………………
……………………………………
………………………………
………………………………
……………………………………
……………………………………
……………………………………
………………………………
………………………………
……………………………………
……………………………………
……………………………………
}
return 0;
}好家伙,写得我头晕眼花的。
这道题其实有两种解法,一种是看测试点,一种是枚举。
看测试点就比较直接粗暴,但是注意在用else if的时候到最后不要写else!!!我就是被这个坑了10分。
另一种是枚举,这个就非常简单,思路就是运用循坏枚举,从u+1(上个月的电量+1)开始,到这个月的电量结束。其中,如果有未达到2760度的电量,每度电就加0.52元,以此类推。
代码如下:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int u,v;
double js=0;
cin>>u>>v;
for(int i=u+1;i<=v;i++)
{
if(i<=2760)
{
js+=0.52;
}
else if(i>2760&&i<=4800)
{
js+=0.57;
}
else if(i>4800)
{
js+=0.82;
}
}
cout<<fixed<<setprecision(2)<<js;
return 0;
}制作不易,给个高分,谢谢。
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复