20 条题解
-
84
这题的 LV 10 写的有点乱,而且这还是蓝桥杯的题!这么简单吗?搞得我心烦意乱,我先讲讲我的思路吧!
- 输入 a 和 b 因为要有一个是实数,所以 up 懒得写两行,就直接全部用 double 了
- 然后用三个判断语句
- ①:a < 40 输出 a * b
- ②:a >= 40 && a <= 50 输出 40 * b + (a - 40) * b * 1.5
- ③:else 输出 40 * b + 10 * b * 1.5 + (a - 50) * b
- 保留两位小数就不用我讲了吧,前面讲过的就不讲了哈~
上代码!求求了,点个赞吧大家(写题解不易!)
#include <bits/stdc++.h> using namespace std; int main() { double a, b; cin >> a >> b; if (a < 40) printf("%.2lf", a * b); else if (a >= 40 && a <= 50) printf("%.2lf", 40 * b + (a - 40) * 1.5 * b); else printf("%.2lf", 40 * b + 10 * 1.5 * b + (a - 50) * 2 * b); return 0; }
-
13
#include <bits/stdc++.h> using namespace std; int main() { double g, x, sum = 0; cin >> g >> x; if (g < 40) { sum += g * x; } if (g >= 40 && g < 50) { sum += 40 * x; sum += (g - 40) * (x * 1.5); } if (g >= 50) { sum += 40 * x; sum += 10 * x * 1.5; sum += (g - 50) * x * 2; } printf("%0.2lf", sum); return 0; } //制作不易,求点赞,谢谢!
-
12
#include <bits/stdc++.h> using namespace std; int main() { double a, b; cin >> a >> b; if (a < 40) printf("%.2lf", a * b); else if (a >= 40 && a <= 50) printf("%.2lf", 40 * b + (a - 40) * 1.5 * b); else printf("%.2lf", 40 * b + 10 * 1.5 * b + (a - 50) * 2 * b); return 0; } 求点赞!!! (会看讨论,有问题找我)
-
10
这道题其实就是要分段计算总薪水,用if-else if就能轻松搞定啦~
1.ab设成double,毕竟double也能存储整数^o^
2.进行分段计算:
(1)如果时间<=40,那就按常规方法来,直接a*b
(2)如果40<时间<=50,先算40小时的,再加上超额的
(3)如果时间>50,还是先算40小时的,再加40~50的,最后加超过50的
3.最后保留2位小数输出
养成好习惯,看代码前点个赞(滑稽)
#include<iostream> #include<cstdio> using namespace std; int main(){ double t,q,sum; cin>>t>>q; if(t<=40) sum=t*q;//常规方法计算 else if(t<=50) sum=40*q+(t-40)*q*1.5;//常规+超额部分 else if(t>50) sum=40*q+10*q*1.5+(t-50)*q*2;//常规+40~50小时部分+超出50小时部分 printf("%.2f",sum);//保留2位小数输出 return 0; }
-
4
已AC答案,请放心食用:
#include <iostream> #include <iomanip> using namespace std; int main() { double x, y, sum = 0; cin >> x >> y; if (x <= 40) { sum += x * y; } else if (x <= 50) { sum += 40 * y; sum += (x - 40) * y * 1.5; } else { sum += 40 * y; sum += 10 * (y * 1.5); sum += (x - 50) * y * 2; } cout << fixed << setprecision(2) << sum << endl; return 0; }
-
2
#include <bits/stdc++.h> #include<cstdio> using namespace std; int main() { double n,m; cin>>n>>m; if (n < 40) { printf("%.2f", n * m); } else if (n >= 40 && n <= 50) { printf("%.2f", 40 * m + (n - 40) * 1.5 * m); } else { printf("%.2f", 40 * m + 10 * 1.5 * m + (n - 50) * 2 * m); } return 0; } //这是比较简单的写法,其他的比较难,所以就不出示了 //老规矩不用❤️ 😄 //已AC,0.0s过
-
1
这题判断挺简单的,就是输出有点难。代码有亿点长,理解一下。 有三种可能(见代码)
#include <bits/stdc++.h> using namespace std; int main() { double a, b; cin >> a >> b; if (a < 40) { cout << fixed << setprecision(2) << a * b; } else if (a >= 40 && a <= 50) { cout << fixed << setprecision(2) << 40 * b + (a - 40) * 1.5 * b; } else { cout << fixed << setprecision(2) << 40 * b + 10 * 1.5 * b + (a - 50) * 2 * b; } return 0; }
-
0
又是一道数学题呢👀️ 上代码🎉️
#include <bits/stdc++.h> using namespace std; int main() { double t , m , s;//时间,每小时薪水,周薪 cin >> t >> m; s = t * m;//前40小时 if (t > 40 && t <= 50) s = 40 * m + (t - 40) * m * 1.5; //40~50小时:40小时薪水+超出部分*每小时薪水*1.5 if (t > 50) s = 40 * m + 10 * m * 1.5 + (t - 50) * m * 2; //>50小时:40小时薪水+50小时薪水+超出部分*每小时薪水*2 printf("%.2f",s);//被忘了保留两位小数 return 0; }
-
0
#include <stdio.h>//调用scanf() printf() #include <algorithm>//调用max() min() using namespace std; int t ;//定义变量 float m ;//定义变量 int main(){ scanf("%d%f",&t,&m); printf("%.2f",( //"%.2f"为格式化输出2位浮点数 min(40,t) * m + //40以内的工资 min(40,t)忽略大于40的 min(max(t-40,0),10) * m * 1.5 + //40~50的工资 max()保证不小于0 min(,t)忽略大于50的 max((t-50),0) * m * 2) //50以上的工资 max()保证不小于0 ); //看着多,实际上printf()内部只需要一行 return 0 ; }
-
-1
#include<bits/stdc++.h> using namespace std; int main() { double a,b; cin>>a>>b; if(a<=40) { cout<<fixed<<setprecision(2)<<a*b; } if(a>40&&a<=50) { cout<<fixed<<setprecision(2)<<40*b+(a-40)*1.5*b; } if(a>50) { cout<<fixed<<setprecision(2)<<40*b+10*1.5*b+(a-50)*2*b; } return 0; }
-
-1
#include<bits/stdc++.h> using namespace std; int main() { double a,b; cin>>a>>b; if(a<=40) { cout<<fixed<<setprecision(2)<<a*b; } if(a>40&&a<=50) { cout<<fixed<<setprecision(2)<<40*b+(a-40)*1.5*b; } if(a>50) { cout<<fixed<<setprecision(2)<<40*b+10*1.5*b+(a-50)*2*b; } return 0; }
-
-2
没想到蓝桥杯的题目这么简单
#include <bits/stdc++.h> using namespace std; int main() { int n; float a; cin>>n>>a; if (n<=40) { cout<<fixed<<setprecision(2)<<n*a; } else if(n>40 and n<=50) { cout<<fixed<<setprecision(2)<<40*a+(n-40)*a*1.5; } else { cout<<fixed<<setprecision(2)<<40*a+10*a*1.5+(n-50)*2*a; } return 0; }
-
-2
#include <bits/stdc++.h> #include<cstdio> using namespace std; int main() { double n,m; cin>>n>>m; if (n < 40) { printf("%.2f", n * m); } else if (n >= 40 && n <= 50) { printf("%.2f", 40 * m + (n - 40) * 1.5 * m); } else { printf("%.2f", 40 * m + 10 * 1.5 * m + (n - 50) * 2 * m); } return 0; }
-
-3
这题是分支类型的题,虽然是蓝桥杯的题(小声),不过难度还算可以。接下来是我的思路。
1.输入(应该不用我多说,题目里有,建议全部用double类型😄)
2.3个判断(第三个写else)
①a<40
②a>=40&&a<=50
3.保留两位小数
代码来也!
#include<bits/stdc++.h>//导入万能头文件 using namespace std; int main() { double t,m;//建立时间,每小时薪水变量,分别用t和m表示 cin>>t>>m; double m2=m*1.5,m3=m*2;//变了倍数以后的每小时薪水变量,这里用m2和m3表示。 if(t<40)//判断t是否小于四十 { printf("%.2f",t*m); } else if(t>=40&&t<=50)//判断t是否大于40并且小于50 { printf("%.2f",40*m+(t-40)*m2); } else//否则t大于50 { printf("%.2f",40*m+10*m2+(t-50)*m3); } return 0; }
-
-6
#include <bits/stdc++.h> using namespace std; int main() { double a,b; cin >> a>>b; if(a <= 40) { cout <<fixed << setprecision(2)<<a*b; } else if(a > 40 && a <= 50) { cout <<fixed <<setprecision(2)<<40*b+(a-40)*b*1.5; } else if(a > 50) { cout <<fixed <<setprecision(2)<<40*b+((a-40)-(a-50))*b*1.5+(a-50)*b*2; } return 0; }
-
-6
这道题分情况去计算薪水就好
1.大于50
前40小时的薪水=40*每小时时薪
40~50的薪水=
大于50的小时薪水=
2.大于40 且 小于等于50
前40小时的薪水=40*每小时时薪
大于40的小时薪水=(总工时-40)
3.小于等于40
总工时*每小时时薪
if(n>50) { cout<<fixed<<setprecision(2)<<40*a+10*a*1.5+(n-50)*a*2; } else if(n>40) { cout<<fixed<<setprecision(2)<<40*a+(n-40)*a*1.5; } else { cout<<fixed<<setprecision(2)<<n*a; }
-
-10
保留 x 位小数
方法 1
- 头文件:
#include <cstdio>
- 语句:
printf("%.xf", a);
方法 2
- 头文件:
#include<iostream>
、#include<iomanip>
- 语句:
cout << fixed << setprecision(x) << a;
注意
如果题目说保留 位小数,那么就按照这种方式输出就可以了。
#include<iostream> #include<iomanip> using namespace std; int main() { cout << fixed << setprecision(x) << a; x代表具体要保留几位。 请务必自己多敲几遍代码,这个单词比较长避免考场出到原题自己单词忘了 }
#include<iostream> #include <cstdio> using namespace std; int main() { printf("%.xf", a); x代表具体要保留几位。 请务必自己多敲几遍代码,这个单词比较长避免考场出到原题自己单词忘了 }
- 头文件:
- 1
信息
- ID
- 856
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 6
- 标签
- 递交数
- 3957
- 已通过
- 1343
- 上传者