第一题
题目描述
从熟悉的C/C++过渡到Java,我们从最简单的编程题开始
给定非负整数 n,求
(2的n次方)的值。
输入格式
一个整数 n。0 <= n < 31。
输出格式
一个整数,即2的n次方。
import java.util.Scanner; class Main {
public static void main(String[] args) {
Scanner s= new Scanner(System.in);
String st =s.next();
s.close();
int p=Integer.parseInt(st);
int sum=1;
for(int i=0;i<p;i++){
sum*=2;
}
System.out.println(sum);
}
}
第二题
题目描述
给定一个单词,如果该单词以 `er` 、 `ly` 或者 `ing` 后缀结尾,则删除该后缀(题目保证删除后缀后的单词长度不为 0),否则不进行任何操作。
输入格式
输入一行,包含一个单词(单词中间没有空格,每个单词最大长度为 32)。
import java.util.Scanner;
public class Main {
public static void main(String args[]) {
Scanner s= new Scanner(System.in);
String st =s.next();
s.close();
char[] str = st.toCharArray();
int len_st = str.length;
int flag=0;
if((str[len_st-2]=='e'&& str[len_st-1]=='r')||(str[len_st-2]=='l'&& str[len_st-1]=='y')){
flag=2;
}
if(str[len_st-3]=='i'&& str[len_st-2]=='n'&& str[len_st-1]=='g'){
flag=3;
}
for(int i=0;i<len_st-flag;i++){
System.out.print(str[i]);
}
System.out.println();
}
}
第三题
题目描述
输入学生的人数,然后再输入每位学生的分数和姓名,求获得最高分数的学生的姓名。
输入格式
第一行输入一个正整数N(N < 100),表示学生人数。
接着输入N行,每行包括两项,代表分数和姓名。
分数是一个非负整数,且小于等于100;
姓名为一个连续的字符串,中间没有空格,长度不超过20。
数据保证所有同学的姓名都不同,而且最高分只有一位同学。
输出格式
获得最高分数同学的姓名。
import java.util.Scanner;
public class Main {
public static void main(String args[]){
Scanner s= new Scanner(System.in);
String num = s.next();
int a = Integer.parseInt(num);
num = s.next();
int score;
int max;
max = Integer.parseInt(num);
String x = s.next();
char[] str = x.toCharArray();
char[] name = str;
for(int i=0;i<a-1;i++){
num = s.next();
score = Integer.parseInt(num);
x = s.next();
str = x.toCharArray();
if(score>max){
max=score;
name = x.toCharArray();
}
}
System.out.println(name);
}
}
第四题
已知:
输入a,b,c,求m 。
输入格式
输入只有一个行三个整数,分别为 a, b, c。
输出格式
输出一行一个小数,为答案,保留三位小数。
这个题的难点在于求最大值,可以声明一个数组
然后就是要注意保留三位小数
(String.format("%.3f", max)
import java.util.Scanner;
public class Zhou1T4 {
public static void main(String args[]){
Scanner s= new Scanner(System.in);
String num = s.next();
int a = Integer.parseInt(num);
num = s.next();
int b = Integer.parseInt(num);
num = s.next();
int c = Integer.parseInt(num);
int ab =a+b;
int bc =b+c;
int [] array = {a,b,c};
double max1 = array[0];
for (int i =1; i < array.length; i++) {
if(array[i] > max1) {
max1 = array[i];
}
}
int [] array2 = {a+b,b,c};
double max2 = array2[0];
for (int i =1; i < array2.length; i++) {
if(array2[i] > max2){
max2 = array2[i];
}
}
int [] array3 = {a,b,b+c};
double max3 = array3[0];
for (int i =1; i < array3.length; i++) {
if(array3[i] > max3) {
max3 = array3[i];
}
}
double max =max1/max2/max3;
System.out.println(String.format("%.3f", max));
}
}
第五题
字符串的结尾是?
通过Java实现一个解决方案,对于输入的两个字符串,判断第二个字符串是否为第一个字符串的结尾。
输入格式
输入只有一行,包含两个字符串str和ending,他们以空格分离
输出格式
true或false
考察的是字符串比对的问题
import java.util.Scanner;
public class Zhou1T5 {
public static void main(String args[]){
Scanner s= new Scanner(System.in);
String num = s.next();
char[] str1 = num.toCharArray();
String back = s.next();
char[] str2 = back.toCharArray();
s.close();
int len_st1 = str1.length;
int len_st2 = str2.length;
for(int i =0;i<len_st2;i++){
if(str1[len_st1-1-i]!=str2[len_st2-1-i]){
System.out.println("false");
System.exit(0);
}
}
System.out.println("true");
}
}