北理工Java第一周作业

本文介绍了四个Java编程题目,涉及2的幂运算、字符串后缀处理、查找最高分学生姓名及求最大值问题。通过这些例子展示了Java中基本的数据类型操作、字符串处理和循环结构的应用,旨在帮助C/C++程序员过渡到Java语言。
摘要由CSDN通过智能技术生成

第一题

题目描述

从熟悉的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");

    }

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值