程序训练赛题

1. 救援

import java.util.*;
public class Main{
    public static void main(String[] args)
    {
        Scanner in = new Scanner(System.in);   //t =s/v
        int n=in.nextInt();
        double len=0;
        double time =0;
        double x,y;
        for(int i=n;i>=1;i--)
        {
            x = in.nextDouble();
            y = in.nextDouble();
            int r = in.nextInt();
            len = Math.sqrt(Math.pow(x,2)+Math.pow(y,2));
            time +=(len/50)*2 + r + 0.5*r;
        }
        System.out.printf("%.0f\n",Math.ceil(time));
    }
}

2. 最高的分数

import java.util.*;
public class Main{
    public static void main(String[] args)
    {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int[] num=new int[n];
        for(int i=0;i<n;i++)
        {
            num[i]=in.nextInt();
        }
        Arrays.sort(num);
        System.out.print(num[n-1]);
    }
}

3. 整数序列的元素最大跨度值

import java.util.*;
public class Main{
    public static void main(String[] args)
    {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int[] num=new int[n];
        //int max=0,min=0;
        //int maxi=0;
        for(int i=0;i<n;i++)
        {
            num[i]=in.nextInt();
        }
        Arrays.sort(num);
        /*max=num[n-1];
        min=num[0];
        maxi=max-min;*/
        System.out.print(num[n-1]-num[0]);
    }
}

4. 蒜厂奖牌计数

import java.util.*;
public class Main{
    public static void main(String[] args)
    {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int[][] num=new int[n][3];
        int g=0,s=0,t=0,sum=0;
        for(int i=0;i<n;i++)
        {
            for(int j=0;j<3;j++)
            {
                num[i][j]=in.nextInt();
            }
        }
        for(int m=0;m<n;m++)   //三行就是行变量不同,只要改动行变量就行,可以大大提高遍历效率
        {
                g +=num[m][0];
                s +=num[m][1];
                t +=num[m][2];
        }
        sum = g + s +t;   //和要放在外循环
        System.out.print(g+" "+s+" "+t+" "+sum);
    }
}

5. 多边形内角和

import java.util.*;
public class Main{
    public static void main(String[] args)
    {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int[] num=new int[n];
        int sum=(n-2)*180;   //内角和
        for(int i=0;i<n-1;i++)
        {
            num[i]=in.nextInt();
        }
        for(int j=0;j<n-1;j++)
        {
            sum -=num[j]; //内角和-已知角的度数=未知角度数
        }
        System.out.print(sum);
    }
}

6. 鸡尾酒疗法

import java.util.*;
public class Main{
    public static void main(String[] args)
    {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int a = in.nextInt();
        int b = in.nextInt();
        int m,k;
        double x = 1.0 * b / a;
        double y;
        for (int i = 2; i <= n; i++)
         {
            m= in.nextInt();
            k= in.nextInt();
            y = 1.0 * k / m;
            if (y - x > 0.05) 
                System.out.println("better");
            else if (x - y > 0.05) 
                 System.out.println("worse");
            else 
                 System.out.println("same");
        }    
    }
}

7. 满足条件的数累加

import java.util.*;
public class Main{
    public static void main(String[] args)
    {
        Scanner in = new Scanner(System.in);
        long m=in.nextInt();
        long n=in.nextInt();
        long sum=0;
        for(long i=m;i<=n;i++)
        {
            if(i%17==0)
            {
                sum += i;
            }
            
        }System.out.print(sum);
    }
}

8. 球弹跳高度的计算

import java.util.*;
public class Main{
    public static void main(String[] args)
    {
        Scanner in = new Scanner(System.in);
        int h = in.nextInt();
        double sum=(double)h;  //初始高度
        double h10=h/2.0;  //h米的高度
        for(int i=1;i<10;i++)
        {
            sum += h10*2;  
            h10 /=2;
        }
        System.out.printf("%g\n%g",sum,h10);
        
    }
}

9. 人口增长问题

import java.util.*;
public class Main{
    public static void main(String[] args)
    {
        Scanner in = new Scanner(System.in);
        double a=in.nextInt();
        double n=in.nextInt();
        for(int i=1;i<=n;i++)
        {
            a *= (1+0.001);  //(a*(1+0.%))^n
        }
        
        System.out.printf("%.4f",a);  //自动四舍五入
    }
}

10.买房子

import java.util.*;
public class Main{
    public static void main(String[] args)
    {
        Scanner in = new Scanner(System.in);
        int N= in.nextInt();
        int y=1;
        double k=in.nextDouble();
        double cost=200.0;
        while(N*y<cost)
	    {
		    y++;
		    cost+=cost*k/100.0;
		    if(y>20)
		        break;
	        }
        if(y<20)
        {
            System.out.print(y);
        }else
        {
            System.out.print("Impossible");
        }
    }
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值