头歌:Java编程基础进阶

5 篇文章 0 订阅

第一关:两整数的四则运算

本关任务:从键盘接收2个整数,a,b。计算a+b,a-b,a*b,a/b的值并打印输出

编程要求


根据提示,在右侧编辑器补充代码,从键盘接收2个整数,a,b。计算a+b,a-b,a*b,a/b的值并打印输出

测试说明
平台会对你编写的代码进行测试:

测试输入:

13

36
预期输出:
a+b=49
a*b=468
a-b=-23
a/b=0

package step1;

import java.util.Scanner;

public class Arithmetic2Num {
    public static void main(String[] args) {
// ---------------------Begin------------------------
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
System.out.println("a+b="+(a+b));
System.out.println("a*b="+(a*b));
System.out.println("a-b="+(a-b));
System.out.println("a/b="+(a/b));

// ---------------------End------------------------
    }
}

第二关:打印三角形

本关任务:编写一个能打印n行三角形的小程序。

编程要求


根据提示,在右侧编辑器补充代码,打印正三角形。

测试说明
平台会对你编写的代码进行测试:

package step2;

import java.util.Scanner;

public class PosTriangle {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        //定义输入的行数:
        int n = scanner.nextInt();
        // ---------------------Begin------------------------
    //换行
        for(int i=1;i<=n;i++){
            //输出空格=总行数-第几行
            for(int j=0;j<n-i;j++){
                System.out.print(' ');
            }
            //输出*,每行的*总数=2*n-1
            for(int k=0;k<2*i-1;k++){
                System.out.print('*');
            }
            System.out.println();
        }

        // ---------------------End------------------------
    }
}

第三关:循环之倒三角

本关任务:编写一个能打印输出n行的倒三角形

1.如何获取输入数据:Scanner
Scanner类简介:
1、使用前需导包:import java.util.Scanner;
2、构造Scanner类对象,它附属于标准输入流System.in。
    Scanner sc =new Scanner(System.in);
3、常用的next()方法系列: 
    nextInt():输入整数 
    nextLine():输入字符串 
    nextDouble():输入双精度数 
    next():输入字符串(以空格作为分隔符)。

2.do…while循环
2.1 基本格式
do {
      循环体语句;
}while((判断条件语句);
2.2扩展格式
初始化语句;
do {
     循环体语句;
     控制条件语句;
} while((判断条件语句);

3.for循环的使用
通俗的理解,遍历数组就是:把数组中的元素都看一遍。

示例如下:

for(初始化语句;判断条件语句;控制条件语句) {
       循环体语句;
}
执行流程

执行初始化语句
执行判断条件语句,看其结果是true还是false
如果是false,循环结束
如果是true,继续执行
执行循环体语句
执行控制条件语句
回到B继续

注意事项:

判断条件语句的结果是一个boolean类型

循环体语句如果是一条语句,大括号可以省略;如果是多条语句,大括号不能省略。建议永远不要省略。

一般来说:有左大括号就没有分号,有分号就没有左大括号

4.while循环语句格式
4.1基本格式
while(判断条件语句) {
      循环体语句;
}
4.2扩展格式
初始化语句;
while(判断条件语句) {
      循环体语句;
      控制条件语句;
}
5.循环结构(for循环和while循环的区别):
for循环语句和while循环语句可以等价转换,但还是有些小区别的

使用区别:控制条件语句所控制的那个变量,在for循环结束后,就不能再被访问到了,而while循环结束还可以继续使用,如果你想继续使用,就用while,否则推荐使用for。原因是for循环结束,该变量就从内存中消失,能够提高内存的使用效率。
场景区别:for循环适合针对一个范围判断进行操作,while循环适合判断次数不明确操作

编程要求


根据提示,在右侧编辑器补充代码,编写一个能打印输出n行的倒三角形

测试说明
平台会对你编写的代码进行测试:

测试输入:4
预期输出:

*******

 *****

  ***

   *

package step3;

import java.util.Scanner;

public class NegTriangle {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        //定义输入的行数:
        int n = scanner.nextInt();
        // ---------------------Begin------------------------
        //换行
        for (int i = n; i >0; i--) {
            //输出空格=总行数-第几行
            for (int j = 0; j < n-i; j++) {
                System.out.print(' ');
            }
            //输出*,每行的*总数=2*i-1
            for (int k = 0; k <2*i-1; k++) {
                System.out.print('*');
            }
            System.out.println();
        }
    
        // ---------------------End------------------------

    }
}

第四关:水仙花数

本关任务:从键盘接收2个整数a和b,输出a与b范围内的水仙花数。

1.水仙花数
水仙花数是指:一个n位数( n23 ),它的每个位上的数字的n 次所谓的水仙花数是指:一个n位数(N23),它的每个位上的数字的n次幂之和等于它本身幂之和等于它本身。

例如:153,370,371,407等都是水仙花数,就拿153来说,153 =111 +555 +333. 幂之和等于它本身.例如153,370,371,407等都是水仙花数,就拿153来说,153=111+55+33。
样例:

public class ShuiXianHua {
    public static void main(String[] args) {
        //1.遍历所有的三位数
        for(int i=100;i<=999;i++){
            if(isAim(i)){//调用方法如果是水仙花数,就打印
                System.out.println(i);
            }
        }
    }
    //例 153
    public static boolean isAim(int a){
        int x=a/100;//结果取整 分解出百位数1
        int y=a/10%10;//分解出十位数 除10取证后为15 %10取余后为5
        int z=a%10;//直接对10取余得3
        if(a==x*x*x+y*y*y+z*z*z){//判断是否为水仙花数
            return true;
        }
        return false;
    }
}


编程要求


根据提示,在右侧编辑器补充代码,从键盘接收2个整数a和b,输出a与b范围内的水仙花数。

测试说明
平台会对你编写的代码进行测试:

测试输入:

1

200
预期输出:
1

153

测试输入:

2

6
预期输出:
2~6范围内无水仙花数!

package step4;

import java.util.Scanner;

public class narcissisticNumber {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        //获取起始范围
        int i = scanner.nextInt();
        //获取终止范围
        int j = scanner.nextInt();
        // ---------------------Begin------------------------
         boolean found = false;
        for(int n = i; n <= j; n++) {
            int x = n / 100; //个位
            int y = n / 10 % 10; //十位
            int z = n % 10; //百位
            if (n == x * x * x + y * y * y + z * z * z) {
                System.out.println(n);
                found = true;
            }
        }
        if (!found) {
            System.out.println(i + "~" + j + "范围内无水仙花数!");
        }

        // ---------------------End------------------------
    }
}

第五关:a与b之间的素数

本关任务:从键盘接收2个整数a和b,输出a与b范围内的所有素数。

素数又叫质数。素数,指的是“大于1的整数中,只能被1和这个数本身整除的数”

编程要求
根据提示,在右侧编辑器补充代码,完成从键盘接收2个整数a和b,输出a与b范围内的所有素数。

测试说明
平台会对你编写的代码进行测试:

测试输入:

1

25
预期输出:
1到25之间的素数有:
1 2 3 5 7 11 13 17 19 23 

测试输入:

20

20 

预期输出:

 20到20之间的素数有:

package step5;

import java.util.Scanner;

public class PrimeNumber {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        // ---------------------Begin------------------------
    int a = scan.nextInt();
        int b = scan.nextInt();
        if(a > 0 && b > 0){
            System.out.println(a + "到" + b + "之间的素数有:");
            for(int i = a;i <= b;i++){
                boolean flag = true;
                for(int j = 2;j <= Math.sqrt(i);j++){
                    if(i % j == 0){
                        flag = false;
                        break;
                    }
                }
                if(flag && i>1){
                    System.out.print(i+" ");
                }
            }
        }

        // ---------------------End------------------------
    }
}

第六关:余X的整数

本关任务:从键盘接收3个整数a、b和c,输出 [a,b] 内满足余c等于0的所有整数。
在java运算中有时会出现对一个整数取余操作,首先复习一下小学学过的除法公式:
除数 ÷ 被除数 = 商
如果没有被整数就会出现余数,例:10 ÷ 3 = 3 余数为 1

在java运算中,取余符号是 %

编程要求


根据提示,在右侧编辑器补充代码,完成从键盘接收3个整数a、b和c,输出 [a,b] 内满足余c等于0的所有整数。

测试说明
平台会对你编写的代码进行测试:

测试输入:
10
20
3

预期输出:
12 
15 
18

package step6;

import java.util.Scanner;

public class LeftXnumber {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        // ---------------------Begin------------------------
       int a = scanner.nextInt();
       int b = scanner.nextInt();
       int c = scanner.nextInt();
       for(int i = a; i <= b;i++){
           if(i % c == 0){
               System.out.println(i);
           }
       }
       
       
       
        // ---------------------End------------------------
    }
}

第七关:求解1元2次方程

本关任务:从键盘接收3个double数据对应方程系数a、b、c,编写一个能求解1元2次方程的程序。方程形式:aX^2+bX+c=0。tips:若有解则结果保留2位小数。

1. 公式法求解1元2次方程
1.1 求出根的判别式
一元二次方程中根的判别式为△=b2—4ac。

1.2 判断根的个数
当△>0时,方程有两个不同的根;当A=0时,方程有两个相同的根;当△<0时,方程无根。

1.3 代入公式求根
当△>0时,x1=(-b + Math.sqrt(delta)) / (2a),x2=(-b - Math.sqrt(delta)) / (2a)
当△=O时,x1=x2=(-b + Math.sqrt(delta)) / (2*a)
当△<0时,方程无根

编程要求
根据提示,在右侧编辑器补充代码,从键盘接收3个double数据对应方程系数a、b、c,编写一个能求解1元2次方程的程序。若有解则结果保留2位小数。

测试说明
平台会对你编写的代码进行测试:

测试输入:

3

4

5
预期输出:
此方程无解

测试输入:

14
55
2

 预期输出:

 方程有两个解:x1=-0.04 x2=-3.89

package step7;

import java.util.Scanner;

public class SolveEquations {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        // ---------------------Begin------------------------
        int a = scanner.nextInt();
        int b = scanner.nextInt();
        int c = scanner.nextInt();
        double k = b*b-4*a*c;
        double x1,x2;
        if(k==0){
            x1 = x2 = (-b + Math.sqrt(k)) / (2*a);
            System.out.println("方程有两个解:x1="+String.format("%.2f",x1)+" x2="+String.format("%.2f",x2));
        }
        else if(k > 0){
            x1=(-b + Math.sqrt(k)) / (2*a);
            x2=(-b - Math.sqrt(k)) / (2*a);
            System.out.println("方程有两个解:x1="+String.format("%.2f",x1)+" x2="+String.format("%.2f",x2));
        }
        else {
            System.out.println("此方程无解");
        }
        
        
        // ---------------------End------------------------

    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

静琳同学在学习

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

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

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

打赏作者

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

抵扣说明:

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

余额充值