多功能的荀彧


私信TA

用户名:8C541168417E

访问量:1983

签 名:

一个即将上线的ACMer

等  级
排  名 32938
经  验 423
参赛次数 0
文章发表 1
年  龄 17
在职情况 学生
学  校 新泰二中
专  业 学习

  自我简介:

一个已经退役的OIer和一个即将上线的ACMer

解题思路:

    不用分类讨论直接暴力求值的方法.

注意事项:

    我们观察到小的数据范围是对大的数据范围没有影响的.

    于是我们考虑每次处理一段,然后吧这段删了.

    至于如果删过了,那就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 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区

强者的思路
2021-05-10 21:14:52
你这个方法太好了,相比我这个拿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
2021-02-09 21:39:24
  • «
  • 1
  • »