解题思路:
不用分类讨论直接暴力求值的方法.
注意事项:
我们观察到小的数据范围是对大的数据范围没有影响的.
于是我们考虑每次处理一段,然后吧这段删了.
至于如果删过了,那就break掉就好了.
参考代码:
#include<bits/stdc++.h>
using namespace std;
int a,b;
int main(){
cin>>a;
if(a>0)b+=(a<100000?a:100000)*0.100,a-=100000;
if(a>0)b+=(a<100000?a:100000)*0.075,a-=100000;
if(a>0)b+=(a<200000?a:200000)*0.050,a-=200000;
if(a>0)b+=(a<200000?a:200000)*0.030,a-=200000;
if(a>0)b+=(a<400000?a:400000)*0.015,a-=400000;
if(a>0)b+=a*0.010;cout<<b;
return 0;
}
0.0分
5 人评分
你这个方法太好了,相比我这个拿if进行判断好太多了QAQ. #include<iostream> using namespace std; int main() { int l,n; cin>>l; if(l<=100000) { n=l*0.1; cout<< n<<endl; } else if(l>100000&&l<=200000) { n=100000*0.1+(l-100000)*0.075; cout <<n <<endl; } else if(l>200000&&l<=400000) { n=100000*0.1+100000*0.075+(l-200000)*0.05; cout <<n<<endl; } else if(l>400000&&l<=600000) { n=100000*0.1+100000*0.075+200000*0.05+(l-400000)*0.03; cout <<n<<endl; } else if(l>600000&&l<=1000000) { n=100000*0.1+100000*0.075+200000*0.05+200000*0.03+(l-600000)*0.015; cout <<n<<endl; } else { n=100000*0.1
AkMoney 2021-02-09 21:39:45 |
n=100000*0.1+100000*0.075+200000*0.05+200000*0.03+400000*0.015+(l-1000000)*0.01; cout <<n<<endl; } }
剔除相关数 (C语言代码)浏览:1836 |
三进制小数 (C++代码)(第11位大于1.5才能进位)浏览:1151 |
C语言考试练习题_一元二次方程 (C语言代码)浏览:737 |
C语言训练-斐波纳契数列 (C语言代码)浏览:1174 |
人见人爱A+B (C语言代码)浏览:628 |
P1001 (C语言代码)浏览:801 |
C语言训练-求s=a+aa+aaa+aaaa+aa...a的值 (C语言代码)浏览:691 |
WU-链表数据求和操作 (C++代码)浏览:1316 |
A+B for Input-Output Practice (IV) (C语言代码)浏览:489 |
C语言程序设计教程(第三版)课后习题10.5 (C语言代码)浏览:956 |