解题思路:

每个阶段都用数组保存,最后超过100万和不超过10万的都不保存(因为n是不确定的),这样看起来就不需要太复杂的输入了。

注意事项:

参考代码:

#include<iostream>

#include<algorithm>

#include<string.h>

#include<math.h>

using namespace std;

int main()

{

int i,j,n,sum=0;

int a[100]={100000*0.1,100000*0.075,200000*0.05,200000*0.03,400000*0.015};

cin>>n;     //  0         1          2            3           4

if(n>=0 && n<=100000) sum=n*0.1;

else if(n>100000 && n<=200000) sum=a[0]+(n-100000)*0.075;

else if(n>200000 && n<=400000) sum=a[0]+a[1]+(n-200000)*0.05;

else if(n>400000 && n<=600000) sum=a[0]+a[1]+a[2]+(n-400000)*0.03;

else

sum=(n-1000000)*0.01+a[0]+a[1]+a[2]+a[3]+a[4];

cout<<sum<<endl;

return 0;

}


点赞(3)
 

0.0分

4 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 5 条评论

code胡 4年前 回复TA
#include<iostream>
using namespace std;
int main()
{
	int l;
	cin>>l;
	if(l<=100000)cout<<l*0.1<<endl;
	else if(l>100000&&l<=200000)cout<<100000*0.1+(l-100000)*0.075<<endl;
	else if(l>200000&&l<=400000)cout<<100000*0.1+100000*0.075+(l-200000)*0.05<<endl;
	else if(l>400000&&l<=600000)cout<<100000*0.1+100000*0.075+200000*0.05+(l-400000)*0.03<<endl;
	else if(l>600000&&l<=1000000)cout<<100000*0.1+100000*0.075+200000*0.05+200000*0.03+(l-600000)*0.015<<endl;
	else if(l>1000000)cout<<100000*0.1+100000*0.075+200000*0.05+200000*0.03+400000*0.015+(l-1000000)*0.01<<endl;
	return 0;
}
张三丰 5年前 回复TA
头文件不用那么多吧,而且你也要用double吧
马金刚 5年前 回复TA
int 要改为double
墨染 5年前 回复TA
为什么用到了那么多的头文件
ThenSea 6年前 回复TA
不错的数组保存固定值法,学到了,蟹蟹~~~~