题目
这道题非常简单
直接用if-else就能过
但我就是要用类来做
温馨提示:这类分段计算的题每段都要分开来算,最后加起来。
本蒟蒻第一次做的时候就在这卡了好久
思路
那就算了吧,也没啥好说的
代码
没错就是你们最喜欢的代码环节
直接贴
#include <stdio.h>
using namespace std;
class Electric_charge {
public:
void out() {
scanf("%d", &a);
if (a == 0) {
printf("0.0\n");
return;
}
sum = Determine_And_Count(a);
printf("%.1f", sum);
}
private:
int a;
double sum;
double Count_1(int x) {
double cnt;
cnt = x * 0.4463;
return cnt;
}
double Count_2(int x) {
double cnt;
cnt =(x - 150) * 0.4663;
return cnt;
}
double Count_3(int x) {
double cnt;
cnt =(x - 400) * 0.5663;
return cnt;
}
double Determine_And_Count(int x) {
double cnt;
if (x <= 150) {
cnt = Count_1(x);
}
else if (x >= 151 && x <= 400) {
cnt = Count_1(150) + Count_2(x);
}
else if (x >= 401) {
cnt = Count_1(150) + Count_2(400) + Count_3(x);
}
return cnt;
}
};
int main() {
Electric_charge M;
M.out();
return 0;
}
这就是我闲着没事干用类写的代码
正常代码
#include <stdio.h>
using namespace std;
int a;
double sum = 0;
int main() {
scanf("%d", &a);
if (a == 0) {
printf("0.0\n");
return 0;
}
if (a <= 150) {
sum = a * 0.4463;
}
else if (a >= 151 && a <= 400) {
sum = 150 * 0.4463 + (a - 150) * 0.4663;
}
else if (a >= 401) {
sum = 150 * 0.4463 + 250 * 0.4663 + (a - 400) * 0.5663;
}
printf("%.1f", sum);
return 0;
}
这里保留小数用printf方便一些
如果用cout的话如下
cout<<fixed<<setprecision(1)<<sum<<endl;
这里要引用
#include<iomanip>
来调用fixed和setprecision函数
祝您食用愉快