1 条题解

  • 0
    @ 2025-12-5 16:55:32

    C :

    
    #include <stdio.h>
    int main()
    {
    	int n;
    	double m=0;
    	scanf("%d",&n);
    
    	if(n>1000000)
    	{
    		m += (n-1000000)*0.01;
    		n = 1000000;
    	}
    	if(n>600000)
    	{
    		m += (n-600000)*0.015;
    		n = 600000;
    	}
    	if(n>400000)
    	{
    		m += (n-400000)*0.03;
    		n = 400000;
    	}
    	if(n>200000)
    	{
    		m += (n-200000)*0.05;
    		n = 200000;
    	}
    	if(n>100000)
    	{
    		m += (n-100000)*0.075;
    		n = 100000;
    	}
    	m += n*0.1;
    	printf("%d\n",(int)m);
    	return 0;
    }
    

    C++ :

    #include<iostream>
    using namespace std;
    int main()
    {
        int m,n;
        cin>>n;
        if(n<=100000)
        m=n*0.1;
        else if(n<=200000)
        m=10000+(n-100000)*0.075;
        else if(n<=400000)
        m=10000+7500+(n-200000)*0.05;
        else if(n<=600000)
        m=10000+7500+10000+(n-400000)*0.03;
        else if(n<=1000000)
        m=10000+7500+10000+6000+(n-60000)*0.015;
        else m=10000+75000+10000+6000+6000+(n-1000000);
        cout<<m;
        return 0;
    }
    
    

    Java :

    import java.util.Scanner;
    
    public class Main {
    
    	/**
    	 * @param args
    	 */
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		final int n = 100000;
    		
    		Scanner input = new Scanner(System.in);
    		
    		int N = input.nextInt();
    		int award = 0;
    		switch(N/n){
    		    case 0 : award = N/10; break;
    		    case 1 : award = n/10 + (N - n)*75/1000; break;
    		    case 2 : ;
    		    case 3 : award = n/10 + n*75/1000 + (N - 2*n)/20; break;
    		    case 4 : ;
    		    case 5 : award = n/10 + n*75/1000 + 2*n/20 + (N - 3*n)*3/100; break;
    		    case 6 : ;
    		    case 7 : ;
    		    case 8 : ;
    		    case 9 : award = n/10 + n*75/1000 + 2*n/20 + 2*n*3/100 + (N - 5*n)*15/1000; break;
    		    default : award = n/10 + n*75/1000 + 2*n/20 + 2*n*3/100 + 4*15/1000 + (n-9*n)/1000; break;
    		}
    		System.out.println(award);
    		input.close();
    	}
    	
    	
    
    }
    
    

    Python :

    
    a = map(lambda x:int(x), raw_input().split())
    x = r = a[0]
    listt = [100000,200000,400000,600000,100000]
    listt2 = [0.1,0.075,0.05,0.03,0.015,0.01]
    prize = 0
    i = 0
    while i < 5 :
        x -= listt[i]
        if x < 0:
            x += listt[i]
            prize += x * listt2[i] 
            break
        prize += listt[i] * listt2[i]
        i += 1
        if i == 5:
            prize += x * listt2[i]
    print int(prize)
    
    
    • 1

    C语言程序设计教程(第三版)课后习题5.8

    信息

    ID
    1994
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    (无)
    递交数
    0
    已通过
    0
    上传者