解题思路:
不用分类讨论直接暴力求值的方法.
注意事项:
我们观察到小的数据范围是对大的数据范围没有影响的.
于是我们考虑每次处理一段,然后吧这段删了.
至于如果删过了,那就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; } }