Java——经典基础题【刷题1】

文章详细介绍了四个Java编程题目,包括判断100-1000内的回文数字、输出九九乘法表、找出100-1000的水仙花数以及生成任意层数的金字塔。每个题目都通过for循环和条件判断来实现,解析了代码逻辑和关键步骤。
摘要由CSDN通过智能技术生成

目录

题目一:判断 100 - 1000内的回文数字并将其输出

题目二:输出九九乘法表

题目三:输出100以内的水仙花数

题目四:金字塔


题目一:判断 100 - 1000内的回文数字并将其输出

===================================

1、题目解析:判断100—1000内所有的回文数字(回文数字:一个三位数的百位和个位一样。例如:121、323、515等...)

2、对题目详细分析:

a、首先我们需要得到100-1000的所有数字,使用一个for循环依次遍历100-1000内的所有数字。其实现如下:

for (int i = 100; i < 1000; i++){

}

b、其次我们就需要得到三位数的百位和个位,其实现如下:

int x= i % 10 ;
int y= i / 100;

代码段解释:定义两个变量依次存放百位的值与个位的值。

c、最后我们将获取到的两个数字进行比较并输出结果,使用if语句,其实现如下:

if (x==y){
    System.out.println(i);
}

最终代码整体实现:

package CSDN;

public class Demo01 {
    public static void main(String[] args) {
    //回文数字
        for (int i = 100; i < 1000; i++){
            int x= i % 10 ;
            int y= i / 100;
            if (x==y){
                    System.out.println(i);
            }
        }
    }
}

3、小结:整体使用了for循环取得所有范围内的数字,然后提取百位和个位的数并存到新的变量中,最后比较两个变量值并将结果输出。

题目二:输出九九乘法表

===================================

1、题目解析:九九乘法表大家都熟悉的不能再熟悉了吧,他的特点就是每当相乘的两个数相同时就会换行并且第一个数会加一,第二个数从一继续递增的与第一个数继续完成运算,那么现在我们的大概思路就有了。接下来我们就一起来看一下详细的分析吧!

2、对题目详细分析:

a、首先我们需要用一个for循环控制输出的行,具体实现:

for(int i=1;i<=9;i++){

}

b、第二步我们需要用一个for循环控制每行输出的个数,代码的具体实现,具体实现:

for(int i=1;i<=9;i++){
    for(int j=1;j<=i;j++){

    }
}

c、第三步我们就可以输出结果了,使用print输出即可,具体实现:

System.out.print(j+"×"+i+"="+(i*j)+"\t");

 最终代码整体实现:

package CSDN;

public class Demo02 {
    public static void main(String[] args) {
    //输出九九乘法表
        for(int i=1;i<=9;i++){
            for(int j=1;j<=i;j++){
                System.out.print(j+"×"+i+"="+(i*j)+"\t");
            }
            System.out.println("\n");
        }
    }
}

可能出现的问题:

 如果出现这种情况,请一定注意你的输出是否是使用print,如果不是请改正。

 3、小结:整体使用了for循环嵌套使用的方法,实现了预期想要的结果。

题目三:输出100~1000的水仙花数

===================================

1、题目解析:水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI)。水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身。

2、对题目详细分析:

 其实这个题目与上边题目一有类似的操作,都需要从一个三位数中取出各位置独立的数字。

a、首先定义四个变量值,作用是分别存放百位、十位、个位的数字和控制循环的正常执行,具体实现如下:

int a;
int b;
int c;
int i;

 b、第二就需要使用for循环获取100~1000内的所有三位数,具体实现如下:

for(i=100;i<1000;i++) {

}

c、 第三我们就来到了提取部分,将百位、十位、个位分别提取赋值给a、b、c三个变量,具体实现如下:

for(i=100;i<1000;i++) {
        a = i / 100;
        b = (i / 10) % 10;
        c = i % 10;
}

 注意:此处提取方式不唯一

 d、第四我使用了if语句对条件进行了判断,并将结果循环输出具体实现如下:

if (i == a * a * a + b * b * b + c * c * c) {
        System.out.println(i);
    }

 最终代码整体实现:

package CSDN;

public class Demo03 {
    public static void main(String[] args) {
        //水仙花数:水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身
        int a;
        int b;
        int c;
        int i;
        for(i=100;i<1000;i++) {
            a = i / 100;
            b = (i / 10) % 10;
            c = i % 10;
            if (i == a * a * a + b * b * b + c * c * c) {
                System.out.println(i);
            }
        }
    }
}

 3、小结:本题整体思路为定义变量、获取数字、提取数字、输出结果。

题目四:输出任意层数的金字塔

===================================

1、题目解析:输出类似下面形状的图形

 2、对题目详细分析:

首先我们需要仔细的分析这个形状,得到一个规律——每层星号的个数是层数的二倍减一(如果现在程序运行到第二层,那么第二层星号的个数就遵循2*2-1,也就是第二层有三个星号),现在我们可以开始想想如何去控制行,和如何去实现这个形状,不难想到肯定需要输出空格去控制这个形状,大概的思路已经梳理了一遍,到这里可能有些朋友还是没有太懂(可能是我叙述的问题,当然咱的读者肯定老聪明了),话不多说,开始解题。

a、老规矩,首先我们先去导入一个包,因为本次操作涉及到输入操作,具体实现如下:

import java.util.Scanner;

b、第二,我们需要一个输入操作,具体代码如下:

 Scanner storey = new Scanner(System.in);
 System.out.print("请输入层数:");
 int storey_1 = storey.nextInt();

 storey_1是一个对象,将输入的值传入

c、接下来就是使用for循环控制层数,具体实现:

for(int i = 1;i <= storey_1;i++){

}

d、然后是控制每行空格的个数,具体实现:

 for(int k = 1;k <= storey_1 - i;k++ ){
        System.out.print(" ");
    }

e、最后是控制每层星号的个数,具体实现:

for(int j = 1;j <= 2 * i - 1;j++){
        System.out.print("*");
    }

 在本题的开头我就详细的说过这一步遵循的规律,如果依然不懂,请仔细多看几遍开头红色文字

f、最后让其每输出一行后换行即可。 

最终代码整体实现:

public static void main(String[] args) {
        Scanner storey = new Scanner(System.in);
        System.out.print("请输入层数:");
        int storey_1 = storey.nextInt();
        for(int i = 1;i <= storey_1;i++){

            for(int k = 1;k <= storey_1 - i;k++ ){
                System.out.print(" ");
            }
            for(int j = 1;j <= 2 * i - 1;j++){
                System.out.print("*");
            }
            System.out.println();
        }
    }
}

3、小结:本题突破口为找到每行遵循的规律就可以做出相应的形状

五、总结

        本文章详细的解答了四个经典的题目,思路较为简单,每一步我都拆分开讲解了,如果还有看不懂的朋友,可以在评论区或者私信我,希望可以对大家有帮助。感觉文章不错的就留下你们的关注吧,顺手点个赞也是可以 的,评论两句也不为过吧,哈哈哈哈哈哈,好啦,这期作品就到这里了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

星离~

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

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

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

打赏作者

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

抵扣说明:

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

余额充值