前天刚参加完2022程序设计小能手比赛,今天来讲解一下其中的第一道题目。

题目名为“阶梯电量”,分值60。

题目描述:(可能不怎么清楚,因为我还没拿到WPS原版)

3PV(WG31GDJZ3_428`I5YVD.png

TDZ4B5VEI5`Q2$IFQ[Z@55G.png

C1~RX{XILB[4KNE]M3V[Y0H.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分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 1 条评论

菜鸟程序员 2年前 回复TA
非常感谢大家的高度认可,我会继续努力的