1 条题解

  • 0
    @ 2025-4-7 21:19:27

    C :

    #include<stdio.h>
    
    int main()
    {
    	int n,x;
    	double s;
    	while(scanf("%d",&n)!=EOF,n)
    	{
    		if(n<=4)
    		{
    			printf("10\n");
    			continue;
    		}
    		s=n/8*18;
    		x=n%8;
    		if(!x)
    			printf("%.lf\n",s);
    		else if(x>=5)
    		{
    			s+=10+2*(x-4);
    			printf("%.lf\n",s);
    		}
    		else
    		{
    			s+=2.4*x;
    			printf("%.1lf\n",s);
    		}
    	}
    	return 0;
    }
    

    C++ :

    #include<stdio.h>
    
    int main()
    {
    	int n,x;
    	double s;
    	while(scanf("%d",&n)!=EOF,n)
    	{
    		if(n<=4)
    		{
    			printf("10\n");
    			continue;
    		}
    		s=n/8*18;
    		x=n%8;
    		if(!x)
    			printf("%.lf\n",s);
    		else if(x>=5)
    		{
    			s+=10+2*(x-4);
    			printf("%.lf\n",s);
    		}
    		else
    		{
    			s+=2.4*x;
    			printf("%.1lf\n",s);
    		}
    	}
    	return 0;
    }
    

    Pascal :

    var n,i,j,a,b:longint;
        s:real;
    begin
      readln(n);
      while n<>0 do
        begin
          if n<=4 then s:=10
          else
            begin
               a:=n div 8;
               b:=n mod 8;
               if b<5 then s:=a*18+b*2.4 else s:=a*18+10+(b-4)*2;
             end;
           if s=trunc(s) then writeln(s:0:0) else writeln(s:0:1);
           readln(n);
        end;
    end.
    
    
    

    Java :

    import java.text.DecimalFormat;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Scanner;
    
    
    class Main {
    
    	private static Scanner scan=new Scanner(System.in);
    	public static void main(String[] args) {
            boolean flag=true;
    		List<Double> list=new ArrayList<Double>();
    		while(flag)
    		{
    			Double value;
    			int n=scan.nextInt();
    			if(n==0)
    			{
    				flag=false;
    				break;
    			}
    			else
    			{
    				if(n<=4)
    				{
    					value=10.00;
    				}
    				else if(n<=8)
    				{
    					value=(double) (10+(n-4)*2);
    				}
    				else
    				{
    					value=(double) (18*(n/8));
    					if(n%8>4)
    					{
    						value=value+10+(n%8-4)*2;
    					}
    					else
    					{
    						value=value+(n%8)*2.4;
    					}
    				}
    				list.add(value);
    			}
    		}
    		for (Double s : list) 
    		{
    			double ss=(double)s;
    			if(ss-(int)ss==0)
    			{
    				System.out.println((int)ss);
    			}
    			else 
    			{
    				DecimalFormat df = new DecimalFormat("0.0");
    				System.out.println(df.format(ss));
    			}
    		}
        }
    }
    

    Python :

    import sys
    for line in sys.stdin:
        kilo = int(line.split()[0])    
        if kilo != 0:
          if 0< kilo <= 4:
             print  10
          elif 4< kilo <= 8:
             print  10+(kilo-4)*2
          elif kilo>8:
             a,b = divmod(kilo,8)
             if b ==0:
                print  18*a+int(2.4*b)
             elif b<=4:
                print 18*a+round(2.4*b,1)
             elif b>4:
                print 18*a+10+(b-4)*2
    
    • 1

    信息

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