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;
}
}