作者:进击攻城狮
个人主页:欢迎访问我的主页
首发时间:2022年8月11日星期四
订阅专栏:刷题
个人信条:星光不问赶路人,岁月不负有心人。
如果文章有错误,欢迎在评论区指正。
🎉 支持我:点赞👍+收藏⭐️+留言📝

读取一个保留两位小数的浮点数值,表示一个公民的工资。
在公民缴纳个人所得税时,不同收入部分需要缴税的税率也是不同的。
请根据下表确定该公民需要缴纳的个人所得税是多少。

共一行,包含一个浮点数。
如果公民需要缴税,则输出所需缴纳的税额。输出格式为 R$ X,其中 XX 为个税的金额,保留两位小数。
如果公民不需要缴税,则输出 Isento。
0≤公民工资≤50000≤公民工资≤5000
3002.00
R$ 80.36
1700.00
Isento
4520.00
R$ 355.60
对于样例 11,0∼2000.000∼2000.00 部分不用缴税,2000.01∼3000.002000.01∼3000.00 部分按 8%8% 的税率缴税,共计 1000×8%=801000×8%=80,3000.01∼3002.003000.01∼3002.00 部分按 18%18% 的税率缴税,共计 2×18%=0.362×18%=0.36,合计 80.3680.36。
对于样例 22,公民收入未超过 20002000,所以输出 Isento。
对于样例 33,0∼2000.000∼2000.00 部分不用缴税,2000.01∼3000.002000.01∼3000.00 部分按 8%8% 的税率缴税,共计 1000×8%=801000×8%=80,3000.01∼4500.003000.01∼4500.00 部分按 18%18% 的税率缴税,共计 1500×18%=2701500×18%=270,4500.01∼45204500.01∼4520 部分按 28%28% 的税率缴税,共计 20×28%=5.6020×28%=5.60,合计 355.60355.60。
| 难度:简单 |
|---|
| 时/空限制:1s / 64MB |
| 总通过数:7149 |
| 总尝试数:18433 |
| 来源:语法题 |
| 算法标签 |
#include
using namespace std;
int main(){
double a;
cin>>a;
if(a>2000.01&&a<=3000)
printf("R$ %.2lf",(a-2000.01)*0.08);
else
if(a>3000.01&&a<4500)
printf("R$ %.2lf",(a-3000.01)*0.18+999.99*0.08);
else
if(a>4500)
printf("R$ %.2lf",(a-4500)*0.28+999.99*0.08+1499.99*0.18);
else
printf("Isento");
}
读取三个整数并按升序对它们进行排序。
共一行,包含三个整数。
首先,将三个整数按升序顺序输出,每行输出一个整数。
然后,输出一个空行。
紧接着,将三个整数按原输入顺序输出,每行输出一个整数。
−100≤输入整数≤100−100≤输入整数≤100
7 21 -14
-14
7
21
7
21
-14
#include
using namespace std;
int main(){
int a[3],b[3];
for(int i=0;i<=2;i++)
{
cin>>a[i];
b[i]=a[i];
}
sort(a,a+3);
for(int i=0;i<=2;i++)cout<<a[i]<<endl;
cout<<endl;
for(int i=0;i<=2;i++)cout<<b[i]<<endl;
}
读取三个浮点数 a,b,ca,b,c 的值,利用一元二次方程求根公式对方程 ax2+bx+c=0ax2+bx+c=0 进行求解。
一元二次方程求根公式为:
x=−b±b2−4ac−−−−−−−√2ax=−b±b2−4ac2a
如果 b2−4ac<0b2−4ac<0 导致方程无解或 a=0a=0,则输出 Impossivel calcular。
输入三个浮点数 a,b,ca,b,c。
参照输出格式,输出方程的根,输出结果保留五位小数,如果无解则输出 Impossivel calcular。
两个根可以按任意顺序输出,都算正确。
数据保证不存在只有一个解的情况。
−1000.0≤a,b,c≤1000.0−1000.0≤a,b,c≤1000.0
10.0 20.1 5.1
R1 = -0.29788
R2 = -1.71212
#include
#include
using namespace std;
int main(){
double a,b,c,d,e,f;
cin>>a>>b>>c;
if((b*b-4*a*c<0)||a==0)cout<<"Impossivel calcular";
else{
e=(-b+sqrt(b*b-4*a*c))/(2*a);
f=(-b-sqrt(b*b-4*a*c))/(2*a);
printf("R1 = %.5lf\nR2 = %.5lf",e,f);
return 0;
}
}
读取 44 个数字 N1,N2,N3,N4N1,N2,N3,N4,这 44 个数字都是保留 11 位小数的浮点数,对应于学生获得的 44 个分数。
这 44 个分数的权重分别为 2,3,4,12,3,4,1,请你计算学生成绩的平均值 XX 并输出 Media: X。
接下来分为以下三种情况:
Aluno aprovado.。Aluno reprovado.。Aluno em exame.,并再读取一个数字 YY,然后输出 Nota do exame: Y。接下来重新计算平均值 Z=(X+Y)/2Z=(X+Y)/2,如果 ZZ 大于或等于 5.05.0,则输出 Aluno aprovado.,否则输出 Aluno reprovado.。最后输出 Media final: Z,表示学生的最终成绩。输入中包含四个浮点数,表示学生的四个成绩。
也有部分满足情况 33 的数据,多包含一个浮点数。
输出的结果均保留 11 位小数,具体形式参照题目描述和输出样例。
0≤输入数据≤10.00≤输入数据≤10.0
2.0 4.0 7.5 8.0
6.4
Media: 5.4
Aluno em exame.
Nota do exame: 6.4
Aluno aprovado.
Media final: 5.9
2.0 6.6 4.0 9.0
Media: 4.9
Aluno reprovado.
9.0 4.0 8.5 9.0
Media: 7.3
Aluno aprovado.
#include
using namespace std;
int main(){
double a,b,c,d,e;
cin>>a>>b>>c>>d;
e=(a*2+b*3+c*4+d)/10;
if(e>7)printf("Media: %.1lf\nAluno aprovado.",e);
else
if(e<5) printf("Media: %.1lf\nAluno reprovado.",e);
else {
double f;
cin>>f;
if((e+f)/2>=5)
printf("Media: %.1lf\nAluno em exame.\nNota do exame: %.1lf\nAluno aprovado.\nMedia final: %.1lf",e,f,(e+f)/2);
else printf("Media: %.1lf\nAluno em exame.\nNota do exame: %.1lf\nAluno reprovado.\nMedia final: %.1lf",e,f,(e+f)/2);
return 0;
}
}