天梯赛每日打卡04(26-40题解)
Posted Huterox
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了天梯赛每日打卡04(26-40题解)相关的知识,希望对你有一定的参考价值。
文章目录
- 前言
- L1-026 I Love GPLT (5 分)
- L1-029 是不是太胖了 (5 分)
- L1-036 A乘以B (5 分)
- L1-038 新世界 (5 分)
- L1-040 最佳情侣身高差 (10 分)
- L1-037 A除以B (10 分)
- L1-031 到底是不是太胖了 (10 分)
- L1-028 判断素数 (10 分)
- L1-035 情人节 (15 分)
- L1-033 出生年 (15 分)
- L1-030 一帮一 (15 分)
- L1-027 出租 (20 分)
- L1-032 Left-pad (20 分)
- L1-034 点赞 (20 分)
- L1-039 古风排版 (20 分)
前言
水题比较多还是刷快一点好,今天是每日打卡第4天,然后这一次,我不仅仅要用java写题目了,我还要用Python,主要是java写,但是坑人的输入输出还有部分性能问题,评测问题为了拿分,必要时使用Python。
L1-026 I Love GPLT (5 分)
public class Main
public static void main(String[] args)
String Love = "I Love GPLT";
char[] chars = Love.toCharArray();
for (char aChar : chars)
System.out.println(aChar);
每日水题~
L1-029 是不是太胖了 (5 分)
import java.util.Scanner;
public class Main
public static void main(String[] args)
Scanner scanner = new Scanner(System.in);
int height = scanner.nextInt();
if(height>100 && height <=300)
double wight = (height - 100) * 0.9;
System.out.printf("%.1f",wight*2);
L1-036 A乘以B (5 分)
import java.util.Scanner;
public class Main
public static void main(String[] args)
Scanner scanner = new Scanner(System.in);
int A = scanner.nextInt();
int B = scanner.nextInt();
System.out.println(A*B);
L1-038 新世界 (5 分)
print("Hello World")
print("Hello New World")
看到了吧,今天不是我飘了,而是那啥,水题比较多。
L1-040 最佳情侣身高差 (10 分)
import java.util.Scanner;
public class Main
// 这里注意一下那个 split 没法提取出合适的结果
public static void main(String[] args)
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
String [][]input=new String[n][2];
for(int i=0;i<n;i++)
for(int j=0;j<2;j++)
input[i][j]=sc.next();
for(int i=0;i<n;i++)
if(input[i][0].equals("M"))
double a=Double.parseDouble(input[i][1])/1.09;
System.out.printf("%.2f",a);
if(input[i][0].equals("F"))
double a=Double.parseDouble(input[i][1])*1.09;
System.out.printf("%.2f",a);
if(i!=n-1)
System.out.println();
L1-037 A除以B (10 分)
import java.util.Scanner;
public class Main
//别问,问就是卡出来 的
public static void main(String[] args)
Scanner scanner = new Scanner(System.in);
double A = scanner.nextInt();
double B = scanner.nextInt();
double j=0;
if (B>0)
j=A/B;
System.out.printf("%.0f",A);
System.out.print("/");
System.out.printf("%.0f",B);
System.out.print("=");
System.out.printf("%.2f%n",j);
if(B<0)
j=A/B;
System.out.printf("%.0f",A);
System.out.print("/(");
System.out.printf("%.0f",B);
System.out.print(")=");
System.out.printf("%.2f%n",j);
if(B==0)
System.out.printf("%.0f",A);
System.out.print("/");
System.out.printf("%.0f",B);
System.out.print("=");
System.out.println("Error");
L1-031 到底是不是太胖了 (10 分)
没啥好说的继续水~
import java.util.Scanner;
public class Main
public static void main(String[] args)
Scanner scanner = new Scanner(System.in);
int n=scanner.nextInt();
String[][] body =new String [n][2];
for(int i=0;i<n;i++)
for(int j=0;j<2;j++)
body[i][j]=scanner.next();
for(int i=0;i<n;i++)
double wei=(Integer.parseInt(body[i][0])-100)*0.9*2;
int weight=Integer.parseInt(body[i][1]);
if(Math.abs(weight-wei)<wei*0.1)
System.out.println("You are wan mei!");
else if(weight>wei)
System.out.println("You are tai pang le!");
else
System.out.println("You are tai shou le!");
L1-028 判断素数 (10 分)
log N 判断素数
这里给出两个快速判断素数的方法,对了,1 不是素数,是一个广义素数。
import java.util.Scanner;
public class Main
public static void main(String[] args)
Scanner scanner = new Scanner(System.in);
int N = scanner.nextInt();
for (int i = 0; i < N; i++)
int num = scanner.nextInt();
if(isValid(num))
System.out.println("Yes");
else
System.out.println("No");
public static boolean isValid(int number)
if(number==1)
return false;
else
int n= (int) Math.sqrt(number);
for (int i=2;i<=n;i++)
if(number%i==0)
return false;
return true;
最快判断
这个我是特意查了一下这个公式的,有一个定理。
public static boolean isOK(int number)
if (number == 2 || number == 3)
return true;
if (number % 6 != 1 && number % 6 != 5)
return false;
for (int i = 5; i <= (Math.sqrt(number)); i += 6)
if (number%i == 0 || number % (i + 2) == 0)
return false;
return true;
使用这个方法即可。
不好记就用上面那个。
L1-035 情人节 (15 分)
这题怎么说,就这样做,不过现在只要是分数>=15的我都怕输入问题。
不过还好,这题没事。
import java.util.Scanner;
public class Main
public static void main(String[] args)
Scanner scanner =new Scanner(System.in);
String[] Peoples=new String[100];
int i=0;
boolean flag=true;
while (flag)
String s = scanner.nextLine();
if (s.equals("."))
flag=false;
else
Peoples[i] = s;
i++;
if (Peoples[1]==null)
System.out.println("Momo... No one is for you ...");
return;
if (Peoples[13] == null)
System.out.println(Peoples[1]+" is the only one for you...");
return;
System.out.println(Peoples[1]+" and "+Peoples[13]+" are inviting you to dinner...");
L1-033 出生年 (15 分)
这题注意细节就可以,然后可以直接枚举出来。
import java.util.Scanner;
public class Main
public static void main(String [] args)
Scanner input = new Scanner (System.in);
int X = input.nextInt();
int Y = input.nextInt();
int year = 0;
int Year [] = new int [4];
for(int i = X; ; i++)
//暴力卡出来,枚举
int count = 1;
Year[0] = i / 1000;
Year[1] = i % 1000 / 100;
Year[2] = i % 100 / 10;
Year[3] = i % 10;
if(Year[0] != Year[1] && Year[0] != Year[2] && Year[0] != Year[3])
count++;
if( Year[1] != Year[2] && Year[1] != Year[3])
count++;
if( Year[2] != Year[3])
count++;
if(count == Y)
year = i;
break;
System.out.print(year - X + " ");
System.out.printf("%04d",year);
L1-030 一帮一 (15 分)
这题也好办,找就好了。性别无符合,后面的往前走,然后删掉这两货。
可以直接用ArraryList 但是考虑到这玩意会移动(删掉元素后,所以还是老老实实用数组)
import java.io.BufferedInputStream;
import java.util.Scanner;
public class Main
public static void main以上是关于天梯赛每日打卡04(26-40题解)的主要内容,如果未能解决你的问题,请参考以下文章