JAVA 华为云 流程控制基础题

1.使用break和label打印乘法表

【习题描述】

输入任意数字n,使用for循环,以及应用break打印输出1*(n-1)的乘法表。

import java.util.Scanner;
/*
 TODO:输入任意数字n,使用break打印1*(n-1)的乘法表。
 如:输入:9。输出: 
  1*1=1
  2*1=2  2*2=4
  3*1=3  3*2=6  3*3=9
  4*1=4  4*2=8  4*3=12  4*4=16
  5*1=5  5*2=10  5*3=15  5*4=20  5*5=25
  6*1=6  6*2=12  6*3=18  6*4=24  6*5=30  6*6=36
  7*1=7  7*2=14  7*3=21  7*4=28  7*5=35  7*6=42  7*7=49
  8*1=8  8*2=16  8*3=24  8*4=32  8*5=40  8*6=48  8*7=56  8*8=64
 */
 class Example7_13 {
    public static void main(String[] args) {
    	Scanner input=new Scanner(System.in);
        System.out.println("请输入1-10中的任意数字");
       int z= input.nextInt();
        outer:
        /*
         * TODO:第一层循环1到z,乘法表的第一个乘数
         */
        for (int i=1;i<z;i++) {
        	 /*
             * TODO:第二层循环1到z,乘法表的第二个乘数
             */
            for (int j=1;j<=i;j++) {
            	/*
            	 * TODO:如果第二个乘数大于第一个乘数重新进入第一个循环。
            	 */
                if (j>i) {
                    break;
                }
                if (i == z) {
                    break outer;
                }
                System.out.print("  " + i + "*" + j + "=" + i * j);
            }
            System.out.println();
        }
    }
}

2.编写if选择结构

【习题描述】

编写程序,创建一个变量x,用户从控制台输入一个数值,赋给变量x,然后使用if语句判断,如果x>0,输出0,否则输出1。

import java.util.Scanner;

public class shuchu {

	public static void main(String[] args) {
        
	    Scanner sc = new Scanner(System.in);
		System.out.println("请输入x值:");
		/*
		TODO:创建变量x,从控制台输入值赋予x
        使用if语句判断,如果x>0,输出0,否则输出1。
		*/
		int x=sc.nextInt();
        if(x>0){
            System.out.println(0);
        }else{
            System.out.println(1);
        }

	
	}
}

3.使用continue跳过2的整数倍

【习题描述】

输入1-10中的任意数字n,通过使用continue,输出1-10中的所有数字,但不能包含数字2的整数倍。

import java.util.Scanner;
/*
 TODO:输入1-10中的任意数字n,通过使用continue,输出1-10中的所有数字,但不能包含数字2的整数倍。
 如:输入:5
     输出:输出非2的整数倍数据:1
           输出非2的整数倍数据:3
           输出非2的整数倍数据:5
 */
 class Example7_15 {
	public static void main(String args[]) {
		Scanner input = new Scanner(System.in);
		System.out.println("请输入1-10中的任意数字");
		int j = input.nextInt();
		for (int i = 1; i <= j; i ++) {
			
			//TODO:判断i是偶数则用continue跳过继续执行
            if(i%2==0){
                continue;
            }
			System.out.println("输出非2的整数倍数据:"+i);
		}
	}

}

4.求最大公约数和最小公倍数

【习题描述】

定义求两个数最大公约数和最小公倍数的方法。用户输入两个整数,调用方法,求出这两个整数的最大公约数和最小公倍数,并打印输出。

import java.util.Scanner;
 /*
  TODO:输入两个整数,求出这两个整数的最大公约数和最小公倍数。
  例如:输入 40 30
        输出 最大公约数:10
             最小公倍数:120
  */
 class Example7_10 {

   public static void main(String[] args) {

        Scanner input = new Scanner(System.in);
        System.out.println("请输入第一个整数:");
        int n1 = input.nextInt();
        System.out.println("请输入第二个整数:");
        int n2 = input.nextInt();
        System.out.println("最大公约数:" + get_gcd(n1, n2));
        System.out.print("最小公倍数:" + get_lcm(n1, n2));
    }

    // 最大公约数
    public static int get_gcd(int n1, int n2) {
        int gcd = 0;
        if (n1 < n2) {
            gcd = n1;
            n1 = n2;
            n2 = gcd;
            //TODO:如果n1小于n2,将n1和n2 互换。方便后面知道哪个值是最大的,避免多次判断。
        }

        if (n1 % n2 == 0) {
            //TODO:如果n1能被n2整除 最大公约数为n2。
            gcd = n2;
            return gcd;
        }

        while (n1 % n2 > 0) {
            //TODO:设置n1等于n1除以n2的余数。
            n1 = n1%n2;
            if (n1 < n2) {
                gcd = n1;
                n1 = n2;
                n2 = gcd;
                //TODO:再判断如果n1小于n2,将n1和n2 互换。
            }

            if (n1 % n2 == 0) {
                gcd = n2;
                //TODO:如果n1能被n2整除 最大公约数为n2。
            }
        }
        return gcd;

    }

    /*
    TODO:求最小公倍数
    功能描述:求出输入的两个数字的最小公倍数。提示:n1和n2的乘积除以最大公约数既为最小公倍数
    参数说明:需要运算的两个数
    返回值说明:两个参数的最小公倍数
    */
    public static int get_lcm(int n1, int n2) {
        return (n1*n2)/get_gcd(n1, n2);
    }


}

5.计算输入数据的和

【习题描述】

定义double型变量sum,并初始化为0。键盘输入若干个数字,每输入一个数字回车确认,最后输入0结束整个的输入操作过程。求输入的所有数字之和并打印输出。

import java.util.Scanner;

public class Example2_3 {
    public static void main (String args[ ]){
        System.out.println("请输入若干个数,每输入一个数回车确认");
        System.out.println("最后输入数字0结束输入操作");
        Scanner reader=new Scanner(System.in);
        double sum=0;
		/*
		TODO:循环判断,如果x不等于0的话,将sum的值增加x
        持续输入x的值,直到输入0结束
		*/
        while(true){
            double x = reader.nextDouble();
            if(x==0.0){
                break;
            }else{
                sum+=x;
            }
        }
        System.out.println("sum="+sum);
    }
}

6.计算存款收益

【习题描述】

假设银行中的存款是10000元,按照11.25%的利率,一年后连本带利将变为11125元。输入任意本金,计算出第一次本金利息翻一番后的本金利息总和

import java.util.Scanner;
/*
 假设银行中的存款是10000元,按照11.25%的利率,一年后连本带利将变为11125元。输入任意本金,计算出第一次本金利息翻一番后的本金利息总和。
 如:输入:20000,输出:42182.28807022953。
 */
 class Example7_5 {

    public static void main(String[] args) {

        double original,money,interest;
        int years=0;
        Scanner input=new Scanner(System.in);
        System.out.println("请输入任意资金数额:");
        int num=input.nextInt();
        original=money=num;//本金
        interest=11.25/100;//年利率
        //当利息和本金之和大于2倍的本金
        //TODO:利用while语句,计算第一次本金利息翻一番后的本金和利息之和。将结果赋值给money并输出。注意利息是复利的计算方法。在“- -”和空白处补全代码。
        double temp = money;
        while (money<2*original){
            years++;
            temp = temp*(1.0+interest);
            money = temp;
        }
        System.out.print(money);
    }
}

7.判断某整数是否能同时被3和7整除

【习题描述】

把程序补充完整,使得从键盘输入一个整数,能判断出该数是否是既可以被3整除又可被7整除的数。如果是,则输出”Yes“,否则输出"No"

import java.io.*;
import java.util.*;

public class Main {
    public static void main(String args[]) {
        Scanner cin = new Scanner(System.in);
        int x = cin.nextInt();
        //判断x是否是既能被3整除,又能被7整除,如果是则输出“Yes",否则输出"No"
        if(x%3==0 && x%7==0){
            System.out.println("Yes");
        }else{
            System.out.println("No");
        }
    }

8.输出指定月份的季节

【习题描述】

根据输入的月份,输出对应的季节(”春天“,”夏天“,”秋天“,”冬天“),如果输入的月份不合理,输出”月份不合法!“。

import java.io.*;
import java.util.*;


public class Main {
    public static void main(String args[]) {
        Scanner cin = new Scanner(System.in);
        int month = cin.nextInt();  //输入月份
        String season = "不合法的月份!";
        //判断month是属于哪个季节,对应修改season为”春天“,”夏天“,”秋天“或”冬天“
        switch (month){
            case 12:
            case 1:
            case 2:
                season = "冬天";
                break;
            case 3:
            case 4:
            case 5:
                season = "春天";
                break;
            case 6:
            case 7:
            case 8:
                season = "夏天";
                break;
            case 9:
            case 10:
            case 11:
                season = "秋天";
                break;
        }


        System.out.println(season);
    }
}

9.初始化点的坐标,然后将点坐标输出

【习题描述】

定义一个点类(Point),包含int型成员变量x、y(坐标),以及设置坐标的方法。创建两个点对象,输入两个点的坐标,将其输出,然后将一个点对象赋值给另一个对象,输出两个点位置。

 

import java.util.Scanner;

public class Example4_4 {
    public static void main(String args[]) {
        //TODO:创建两个Point对象p1,p2
        Point p1 = new Point();
        Point p2 = new Point();
        Scanner sc = new Scanner(System.in);
        System.out.println("输入点的坐标(x,y):");
        //TODO:输入点的坐标,调用Point对象p1,p2的setXY方法赋值
        p1.setXY(sc.nextInt(), sc.nextInt());
        System.out.println("p1的x,y坐标:"+p1.x+","+p1.y);
        p2.setXY(sc.nextInt(), sc.nextInt());
        System.out.println("p2的x,y坐标:"+p2.x+","+p2.y);
        p1 = p2;
        System.out.println("将p2的引用赋给p1后:");
        System.out.println("p1的x,y坐标:"+p1.x+","+p1.y);
        System.out.println("p2的x,y坐标:"+p2.x+","+p2.y);
    }
    static class Point {
        int x,y;
        /*
        TODO:设置变量x,y的值
        功能描述:把传入的参数,分别赋值给x,y变量
        参数说明:传入m、n分别赋给x、y变量
        返回值说明:无
        */
        public void setXY(int m,int n){
            this.x = m;
            this.y = n;
        }
}
}

10.判断素数

【习题描述】

定义一个判断素数的方法isPrime。用户输入1-100以内的任意数字n,通过调用isPrime方法判断从0-n的所有素数,并打印输出。

import java.util.Scanner;
/*
 输入1-100以内的任意数字n,通过for循环输出从0-n中的所有素数,素数只能被1和自身整除。
 如:输入:30 输出:2 3 5 7 11 13 17 19 23 29
 */
class Example7_8 {

    public static void main(String[] args) {


        Scanner sc = new Scanner(System.in);
        System.out.println("请输入1-100中的任意数字:");
        int j = sc.nextInt();
        for (int i = 1; i <= j; i++) {
            if (isPrime(i)) {
                System.out.print(i+" ");
            }
        }

    }
    //素数的判断方法
        private static boolean isPrime(int num) {
            if(num==1){
                return false;
            }
            
            //TODO:求出该数值的2次方根,然后判断2到该值之间是否有可以被整除的数,在“- -”处补全代码
            long sqrtNum=(long)Math.sqrt(num); 
            for(int i=2;i<num;i++){
                if(num%i==0){
                    return false;
                }
            }
            return true;
        }



    }

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kkoneone11

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值