牛客编程初学者人门训练第三部分

1.2的n次方计算
在这里插入图片描述

import java.util.Scanner;

public class Main {
    public static void main(String[] srgs){
        Scanner scan = new Scanner(System.in);
        while(scan.hasNext()){
            int n = scan.nextInt();
            int a = 2 << n-1;
            System.out.println(a);
        }
    }
}

2.kiki和酸奶
在这里插入图片描述

解题思路:
用所给的时间除以喝一瓶酸奶的时间得到一个数据,这个数据整数部分表示已经喝了多少瓶,小数部分表示已经打开了但是还没有喝完,根据题目中的示例可知没喝完的也算作是喝完的。这样就求出了喝完酸奶的瓶数,剩余酸奶等于所有酸奶减去已喝酸奶。

//方法一
import java.util.Scanner;
import java.math.*;

public class Main{
    public static void main(String[] args){
        Scanner scan = new Scanner(System.in);
        int n = scan.nextInt();
        int h = scan.nextInt();
        int m = scan.nextInt();
        /*一定要将输入的int型数据转换为double型,
         *因为后面的math.ceil()函数是对double型数据进行处理的,
         *m除以h可能是整数也可能是小数,
         *这样的程序只能通过百分之60,
         *最好的处理是将m和h都变为double型。
         */
        double n1 = n;
        double h1 = h;
        /*Math.ceil()函数针对double型数据向上取整,
		 *即对大于零的double数据舍弃小数部分后加一,
 		 *对小于零的double数据直接舍弃小数部分。
 		 */
        double last = n - Math.ceil(m/h1);
        System.out.println((int)last);
    }
}

//方法二
import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        Scanner scan = new Scanner(System.in);
        int n = scan.nextInt();
        int h = scan.nextInt();
        int m = scan.nextInt();
        int last;
        if(m % h == 0){
            last = n - m / h;
        }else{
            last = n - m / h - 1;
        }
        //这里可以可以将前面的last直接用输出语句输出,
        //不过这样的优化没有实质的提升,只是减少代码数量
        System.out.println(last); 
    }
}


//方法二的代码还可以优化一下
import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        Scanner scan = new Scanner(System.in);
        int n = scan.nextInt();
        int h = scan.nextInt();
        int m = scan.nextInt();
        //将方法二中的if-else语句缩写直接在输出语句中输出
        System.out.println(n - (m / h) - (m % h));
    }
}

3.发布信息
在这里插入图片描述

public class Main {
    public static void main(String[] args){
        System.out.println("I lost my cellphone!");
    }
}

4.输出学生信息
在这里插入图片描述

public class Main {
    public static void main(String[] args){
        System.out.println("Name    Age    Gender");
        System.out.println("---------------------");
        System.out.println("Jack    18     man");
        /*唯一需要注意的是Age是三个字符,
 		 * 数字18是两个字符,题目要求每列输出信息和标题首字母对齐,
 		 * 所以18后面应该有5个空格然后再输出man
 		 * */
    }
}

5.你是天才吗?
在这里插入图片描述

import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        Scanner scan = new Scanner(System.in);
        int n = scan.nextInt();
        if(n >= 140){
            System.out.print("Genius");
        }
    }
}

//上面的代码逻辑很好理解,但是下面的代码测试也能通过,不过我还是不能明白是怎么理解的。

import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        //Scanner scan = new Scanner(System.in);
        //int n = scan.nextInt();
        //if(n >= 140){
            System.out.print("Genius");
        //}
    }
}

6.完美成绩
在这里插入图片描述

import java.util.Scanner;
 
public class Main{
    public static void main(String[] args){
        Scanner scan = new Scanner(System.in);
        int score = scan.nextInt();
        if(score >= 90 && score <= 100){
            System.out.print("Perfect");
        }
    }
}

//这提题和上面一题是一样的思路。
import java.util.Scanner;
 
public class Main{
    public static void main(String[] args){
        //Scanner scan = new Scanner(System.in);
        //int score = scan.nextInt();
        //if(score >= 90 && score <= 100){
            System.out.print("Perfect");
        //}
    }
}

7.及格分数

题目描述
KiKi想知道他的考试分数是否通过,请帮他判断。从键盘任意输入一个整数表示的分数,编程判断该分数是否在及格范围内,如果及格,即:分数大于等于60分,是输出“Pass”,否则,输出“Fail”。
输入描述:
多组输入,每行输入包括一个整数表示的分数(0~100)。
输出描述:
针对每行输入,输出“Pass”或“Fail”。
示例1
输入
94
输出
Pass
示例2
输入
44
输出
Fail

import java.util.Scanner;
 
public class Main{
    public static void main(String[] args){
        Scanner scan = new Scanner(System.in);
        //while循环实现多组数据的输入
        while(scan.hasNext()){
            int score = scan.nextInt();
            if(score >= 60 && score <= 100){
                System.out.println("Pass");
            }else{
                System.out.println("Fail");
            }
        }
    }
}
/*if(score >= 60 && score <= 100){
  	System.out.println("Pass");
  }else{
  	System.out.println("Fail");
  }
  可以简写为以下代码
 System.out.println(score>=60&&score<=100?"Pass":"Fail");
*/

8.判断整数奇偶性
在这里插入图片描述

//解法一
import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        Scanner scan = new Scanner(System.in);
        while(scan.hasNext()){
            int num = scan.nextInt();
            System.out.println(num % 2 == 0 ? "Even" : "Odd");
        }
    }
}

//解法二:更加高效
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main{
    public static void main(String[] args)throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String s = null;
        while((s = br.readLine()) != null){
            int num = Integer.parseInt(s);
            System.out.println(num % 2 == 0 ? "Even" : "Odd");
        }
    }
}

9.判断是元音还是辅音
在这里插入图片描述

输入单个字符的方法
方法一:
char ch;
Scanner scan = new Scanner(System.in);
ch = scan.next().charAt(0);
方法二:
Scanner scan = new Scanner(System.in);
String str = scan.next();
char ch = str.charAt(0);
方法三:
char ch;
ch = (char)System.in.read();

import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        Scanner scan = new Scanner(System.in);
        String str = "AEIOUaeiou"; //创建元音字母数组
        while(scan.hasNext()){
            char ch;
            ch = scan.next().charAt(0); //输入单个字符
            //通过indexOf()函数判断字符ch是否出现在元音数组中
            //若未出现返回-1,输出Consonant,否则输出Vowel.
            System.out.println(str.indexOf(ch) == -1 ? "Consonant" : "Vowel");
        }
    }
}

//下面这种解法更容易理解
import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        Scanner scan = new Scanner(System.in);
        String str = "AEIOUaeiou";
        while(scan.hasNext()){
            char ch;
            ch = scan.next().charAt(0);
            if(ch=='A'||ch=='a'||ch=='E'||ch=='e'||ch=='I'||ch=='i'||ch=='O'||ch=='o'||ch=='U'||ch=='u'){
                System.out.println("Vowel");
            }else{
                System.out.println("Consonant");
            }
        }
    }
}

10.进制A+B
在这里插入图片描述

import java.io.*;
 
public class Main{
    public static void main(String[] args)throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String[] str = br.readLine().split(" ");
        int a = Integer.parseInt(str[0].substring(2),16);
        int b = Integer.parseInt(str[1],8);
        System.out.println(a + b);
    }
}

11.判断字母
在这里插入图片描述

import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        Scanner scan = new Scanner(System.in);
        while(scan.hasNext()){
            char ch;
            ch = scan.next().charAt(0);
            System.out.println((ch >= 65 && ch <= 123) ? "YES" : "NO");
        }
    }
}

12.判断两个数的大小关系

题目描述
KiKi想知道从键盘输入的两个数的大小关系,请编程实现。
输入描述:
题目有多组输入数据,每一行输入两个整数(范围(1 ~231-1),用空格分隔。
输出描述:
针对每行输入,输出两个整数及其大小关系,数字和关系运算符之间没有空格,详见输入输出样例。
示例1
输入
1 1
输出
1=1
示例2
输入
1 0
输出
1>0
示例3
输入
0 1
输出
0<1

import java.io.*;

public class Main{
    public static void main(String[] args)throws IOException{
        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        String s = null;
        while((s = bf.readLine())!= null){
            String[] num = s.split(" ");
            int a = Integer.parseInt(num[0]);
            int b = Integer.parseInt(num[1]);
            if(a == b){
                System.out.println(a + "=" + b);
            }else if(a > b){
                System.out.println(a + ">" + b);
            }else{
                System.out.println(a + "<" + b);
            }
        }
    }
}

13.计算单位阶跃函数
在这里插入图片描述

import java.io.*;

public class Main{
    public static void main(String[] args)throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String s = null;
        while((s = br.readLine()) != null){
            int t = Integer.parseInt(s);
            if(t > 0){
                System.out.println("1");
            }
            if(t == 0){
                System.out.println("0.5");
            }
            if(t < 0){
                System.out.println("0");
            }
        }
    }
}

14.三角形判断
在这里插入图片描述

import java.io.*;

public class Main{
    public static void main(String[] args)throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String str = null;
        while((str = br.readLine()) != null){
            String[] s = str.split(" ");
            int a = Integer.parseInt(s[0]);
            int b = Integer.parseInt(s[1]);
            int c = Integer.parseInt(s[2]);
            if(a == b && b == c){
                System.out.println("Equilateral triangle!");
            }else if((a == b || a == c ||b == c)&& a+b>c && a+c>b && b+c>a){
                System.out.println("Isosceles triangle!");
            }else if(a+b>c && a+c>b && b+c>a){
                System.out.println("Ordinary triangle!");
            }else{
                System.out.println("Not a triangle!");
            }
        }
    }
}

15.线段图案
在这里插入图片描述

import java.io.*;

public class Main{
    public static void main(String[] args)throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String str = null;
        while((str = br.readLine()) != null){
            int n = Integer.parseInt(str);
            for(int i = 0; i < n; i++){
                System.out.print("*");
            }
            System.out.println();
        }
    }
}

16.平均身高
在这里插入图片描述

import java.io.*;

public class Main{
    public static void main(String[] args)throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String[] str = br.readLine().split(" ");
        double a = Double.parseDouble(str[0]);
        double b = Double.parseDouble(str[1]);
        double c = Double.parseDouble(str[2]);
        double d = Double.parseDouble(str[3]);
        double e = Double.parseDouble(str[4]);
        System.out.printf("%.2f",(a+b+c+d+e)/5);
    }
}

17.(a+b-c)*d的计算问题
在这里插入图片描述

import java.io.*;

public class Main{
    public static void main(String[] args)throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String[] str = br.readLine().split(" ");
        int a = Integer.parseInt(str[0]);
        int b = Integer.parseInt(str[1]);
        int c = Integer.parseInt(str[2]);
        int d = Integer.parseInt(str[3]);
        System.out.println((a + b - c) * d);
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值