0
点赞
收藏
分享

微信扫一扫

打酱油路过,2016年第四届湘潭大学新生趣味程序设计竞赛-Java

玉字璧 2023-05-05 阅读 66


Age

原题链接:http://202.197.224.59/OnlineJudge2/index.php/Problem/read/id/1253


Age

题目描述

n。你能根据n,算出他有多少岁吗?

输入

T(1≤T≤99),表示样例的个数。 每行输入一个整数n。

输出

每行输出一个样例的结果。

样例输入



2 20 118



样例输出



16 17



样例解释

第1样例,此人生于2000年;第2样例,此人生于1999年。


代码:


import java.util.Scanner;

public class Age {

	public static void main(String[] args) {
		
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		int[] arr=new int[n];
		
		for (int i = 0; i < arr.length; i++) {
			arr[i]=getAge(sc.nextInt());
		}
		
		for (int i = 0; i < arr.length; i++) {
			System.out.println(arr[i]);
		}
	}

	private static int getAge(int nextInt) {
		for (int i = 1918; i <= 2016; i++) {
			if((i/100+i%100)==nextInt)
				return 2016-i;
		}
		return 0;
	}
}


Balance



Balance

题目描述

1∼n克的物品,请问最少需要几颗砝码?
比如小明想称出1∼4克的物品,需要2颗砝码,为1和3克。





输入

T(1≤T≤10000),表示样例的个数。 以后每行一个样例,为一个整数 (1≤n≤109)。

输出

每行输出一个样例的结果。

样例输入


31 4 40


样例输出


12 4


代码:


import java.util.Scanner;

public class Balance {

	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		int[] arr=new int[n];
		for (int i = 0; i < arr.length; i++) {
			arr[i]=getBalance(sc.nextInt());
		}
		
		for (int i = 0; i < arr.length; i++) {
			System.out.println(arr[i]);
		}
	}

	private static int getBalance(int nextInt) {
		int sum=1;
		for (int i = 1; i < 32; i++) {
			if(nextInt<=sum)
				return i;
			else
			{
				sum+=Math.pow(3, i);
			}
		}
		return 0;
	}
}


Clock

Clock

题目描述
钟的一圈是12小时,其中时针、分钟都是匀速移动。一天从00:00~23:59,请问某一时刻,时针与分针的夹角是多少?
       
        



输入
第一行是一个整数
         
          T(1≤T≤1440)
         ,表示样例的个数。 以后每行是一个时刻,格式为HH:MM。

输出
每行输出一个样例的结果,如果结果不是整数,小数部分不要输出多余的0。

样例输入
       
        2
00:01
00:30
       

样例输出

       

        5.5
165

       
代码:
import java.util.Scanner;

public class Clock {

	public static void main(String[] args) {

		Scanner sc=new Scanner(System.in);
		int n=Integer.parseInt(sc.nextLine());
		String[] arr=new String[n];
		
		for (int i = 0; i < arr.length; i++) {
			arr[i]=getClock(sc.nextLine());
		}
		
		for (int i = 0; i < arr.length; i++) {
			System.out.println(arr[i]);
		}
	}

	private static String getClock(String nextLine) {
		String[] arr=nextLine.split(":");
		double h=Integer.parseInt(arr[0]);
		double m=Integer.parseInt(arr[1]);
		if(h>=12)
			h=h-12;
		double hf=h/12*360+m/60*30;
		double mf=m/60*360;
		double t=Math.abs(hf-mf);
		if(t>=180)
			t=360-t;
		if(t==180)
			t=0;
		String str=""+t;
		if(str.endsWith(".0"))
			str=str.substring(0,str.length()-2);
		return str;
	}
}

       
        
         Different Digits
         
          

         
        
       

Different Digits

题目描述
有一个
          
           n
          位数
          
           x
          ,每个数码都不一样,可你知道
          
           x
          的后
          
           m(m<n)
          位构成的整数
          
           x′
          ,请问满足条件最小的
          
           x
          是多少?

输入
第一行是一个整数
          
           T(1≤T≤1000)
          ,表示样例的个数。 每个样例一行,为两个整数
          
           n(2≤n≤10)
          和
          
           x
          的后
          
           m
          位的整数
          
           x′(0≤x′<987654321,x′没有前导0且所有数码都不一样)
          。

输出
每行输出一个样例的结果。

样例输入
        
         2
3 12
4 12
        

样例输出

        

         312
3012

        
代码:
import java.util.Scanner;


public class DifferentDigits {

	public static void main(String[] args) {

		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		String[] arr=new String[n];
		
		for (int i = 0; i < arr.length; i++) {
			int a=sc.nextInt();
			int b=sc.nextInt();
			arr[i]=getDigits(a,b);
		}
		
		for (int i = 0; i < arr.length; i++) {
			System.out.println(arr[i]);
		}
	}
	private static String getDigits(int a, int b) {
		String str=b+"";
		while (str.length()!=a) {
			for (int i = 0; i < 10; i++) {
				if(str.indexOf(i+"")==-1){
					if(a-str.length()==1&&i==0)
						continue;
					str=i+str;
					break;
				}
			}
		}
		return str;
	}
}
import java.util.Scanner;

public class EstrellasTravel {
	public static void main(String[] args) {
		Scanner sa=new Scanner(System.in);
		while(true){
			int n=sa.nextInt();
			int m=sa.nextInt();
			int a[]=new int[n];
			for (int i = 0; i < a.length; i++) {
				a[i]=sa.nextInt();
			}
			getEstrellas(n,m,a);
		}
	}
	private static void getEstrellas(int n, int m, int[] a) {
		int dp[]=new int[100000];
		dp[0]=0;
		for (int i = 1; i <= n; i++) {
			int min=dp[i-1];
			for (int j =Math.max(i-m, 0); j < i; j++) {
				min=Math.min(min, dp[j]);
			}
			dp[i]=min+a[i-1];
		}
		System.out.println(dp[n]);
	}
}
import java.util.Scanner;

public class Finally {

	public static void main(String[] args) {

		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		
		int[] arr=new int[n];
		for (int i = 0; i < arr.length; i++) {
			arr[i]=getPFS(sc.nextInt());
		}
		for (int i = 0; i < arr.length; i++) {
			System.out.println(arr[i]);
		}
	}

	private static int getPFS(int nextInt) {
		int conut=0;
		for (int i = 1; i <= nextInt; i++) {
			if((Math.pow(i, 0.5)+"").endsWith(".0"))
				conut++;
		}
		return conut;
	}
}
import java.util.Scanner;

public class Gemstone {

	public static void main(String[] args) {
		
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		int[] arr=new int[n];
		for (int i = 0; i < arr.length; i++) {
			int le=sc.nextInt();
			int k=sc.nextInt();
			int[] data=new int[le];
			for (int j = 0; j < data.length; j++) {
				data[j]=sc.nextInt();
			}
			arr[i]=getMax(k,data);
		}
		for (int i = 0; i < arr.length; i++) {
			System.out.println(arr[i]);
		}
	}

	private static int getMax(int k, int[] data) {
		int sum=0;
		int temp=0;
		int co=0;
		int x=0;
		for (int i = 0; i < data.length; i++) {
			while (co!=k) {
				x=co+i;
				if(x>=data.length){
					x=x-data.length;
				}
				temp+=data[x];
				co++;
			}
			sum=temp>sum?temp:sum;
			co=0;
			temp=0;
		}
		return sum;
	}
}

举报

相关推荐

0 条评论