java5.从键盘输入一个三位数,并判断是否是水仙花数(各位数字立方之和等于数本身的三位整数)

供稿:hz-xin.com     日期:2025-01-15
打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。JAVA

/** * 打印 10000 以内的所有水仙花数 * * 所谓“水仙花数”即一个整数满足其值等于各个数位的立方和。 * 例如:153是一个水仙花数,因为153=1*1*1+5*5*5+3*3*3 * * 1) 检查一个数num是否为水仙花数 * 2) 检查一个范围内全部的num是否为水仙花数 * * num = 153; * n1 = 1 = num/10/10%10 * n2 = 5 = num/10%10 * n3 = 3 = num%10 * * sum = 0; //每个数字3次方的累加和 * * n = num%10; //n = 3 取最后一位 * num = num/10;//num = 15 消掉最后一位 * sum+= n*n*n * * n = num%10; //n= 5 取最后一位 * num = num/10;//num = 1 消掉最后一位 * sum+= n*n*n * * n = num%10; //n= 1 取最后一位 * num = num/10;//num = 0 消掉最后一位 * sum+= n*n*n * * num==0 结束 * sum 3次方的累加和 * sum == num 相等 num 是水仙花数 */public class Demo04 { public static void main(String[] args) { for(int number=2; number<=100000; number++){ int num = number; int sum = 0; while(true){ int n = num%10; num /= 10;//num = num/10; sum += n*n*n; //System.out.println("n:"+n);//跟踪语句,跟踪n if(num==0){ break; } } if(sum==number){ System.out.print(number+" "); } } }}希望能帮到你 望采纳!

java代码PS:最后运行的时候才发现只有4个水仙花数,自己可以尝试一下不会可以追问哦~public class Test { public static void main(String args[]) { int count=0;//水仙花数个数计数器 for(int num=100;num<1000;num++) { int g=num%10;//个位 int s=num/10%10;//十位 int b=num/100;//百位 if(g*g*g+s*s*s+b*b*b==num){ /*我刻意回避了Math.pow函数,因为返回值是double类型,不方便判等*/ count++; System.out.print(num+" "); if(count%5==4) System.out.println(); /*5个水仙花数一换行*/ } } }}

水仙花数, 主要用到的是基础的运算符相关的知识

参考代码和注释

import java.util.Scanner;

public class Demo {
static Scanner input;

public static void main(String[] args) {
input = new Scanner(System.in);
// int num = Integer.parseInt(input.nextLine()); //这是简单的读取数字.但是不能处理异常和错误的输入
int num = getNum();
if (isSXH(num)) {
System.out.println(num + "是水仙花数");
} else {
System.out.println(num + "不是水仙花数");
}
}

// 该方法用于从控制台读取一个3位数字
private static int getNum() {
int num;
while (true) {
System.out.println("请输入一个三位数:");
try {
num = Integer.parseInt(input.nextLine()); // 把输入的字符串转成数字
if (num >= 100 && num <= 999) {// 如果是3位数
break;// 那么跳出循环
} else {// 如果不是三位数
System.out.println("Sorry~输入错误!!!");
continue;// 那么继续要求输入
}
} catch (Exception e) {
System.out.println("Sorry~输入错误!!!");
continue;
}
}

return num;
}

// 该方法用于判断是否是水仙花数
private static boolean isSXH(int num) {
int b = num / 100; // 取得百位数
int s = num % 100 / 10; // 取得十位数
int g = num % 10; // 取得个位数
if (num == g * g * g + s * s * s + b * b * b) { // 判断是否是水仙花数
return true;
}
return false;
}
}

测试

请输入一个三位数:
a9bcd
Sorry~输入错误!!!
请输入一个三位数:
2988
Sorry~输入错误!!!
请输入一个三位数:
153
153是水仙花数


AVA生存如何建5人房?
将数值输入为5,点击扫描。启动AVA,选择死亡峡谷,这次不要点击确定。回到桌面上,再次输入VZ,输入数字4,点击扫描。在游戏界面,再次选择“拯救入门”,但不要点击确定。回到桌面上,输入VZ和5,点击扫描。查看结果,确保所有选项都显示为红色箭头,并选择全部打勾。退出房间,点击创建房间,选择五人房并...

茶杯头手游大冒险的a键在哪里在游戏中按键这是哪个键
1,在游戏中按 键 这是哪个键是上排123456789最左边的那个键。在游戏中是不好退出的 只有退出游戏 2,AVA在游戏中 按键盘上的那个键是截图的F12旁边的按键 PRINT screen截图在 路径:ava\\战地之王\\avaGame\\ScreenShots 可以找到 3,游戏中的快捷键是哪一个0键:长按显示时间*号键:在大厅中快速...

AVA 有了脚本咋开5人房
自己下VE,杀毒肯定会报,所以怎么做你自己知道,运行AVA,切出来,开VE,点左上的放大镜加载AVA,然后建4人房,切出,在VE搜索条输入4,点搜索,之后切回游戏,再建5人房,再切VE,搜5,重复4545的搜,直到左边的地址条小于10个,之后顺次双击,下面会出对应的地址,在数值那把4全改成5之后锁定...

我用的是极点五笔输入法7.0,再玩AVA的时候,进入游戏看...
回答:你好,你在游戏里把5笔弄成英文了吧!你找见键盘最左边从地往上数3个,就那键你恩一下就弄成汉语了!望采纳

如何使用 VE修改器 开 战地之王AVA 5人房??
然后切到VE,先点左上角的放大镜图标,找到AVA程序,然后在搜索栏里搜索4,点第一次搜索,完成以后切回AVA,选择拯救入门(因为这个是5个人),也别建出来,再切到VE,搜索框输入5,点再次搜索,然后再切回AVA改成4人的模式,切到VE,搜4,就这样来回循环,知道左面搜索的数值在4个以下,一个最...

ava5人房怎么开
在AVA中,某些模式或地图可能会支持多人组队进行游戏,但这些通常是通过玩家自发组队的方式来实现的,并没有一个固定的“5人房”形式。玩家在游戏过程中可能会遇到所谓的“5人房”,但实际上这更多是由于其他玩家的组队行为造成的错觉。玩家在游戏大厅中,看到的组队信息通常是由玩家自己或他人发起的,...

ava中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop...
public void run() { } }.start();第二种方式是通过创建实现了Runnable接口的匿名内部类,然后将其实例传递给Thread构造函数。例如:new Thread(new Runnable() { public void run() { } }).start();从Java 5开始,引入了线程池的概念,通过ExecutorService接口提供的方法来创建线程。例如:Executo...

给他爱5是什么类型的游戏QQAVA属于什么类型游戏
给他爱5是什么类型的游戏QQAVA属于什么类型游戏1,QQAVA属于什么类型游戏 作为一款激烈对抗的网络枪战游戏,A.V.A具备超乎想象的出色画面效果,它使用目前最先进的虚幻3引擎,最革命性的Next-Generation On-Line FPS

AVA生存如何建5人房?
然后先别打开,先打开游戏,点建立房间-按拯救入门(别点确定)-按Alt+Ctrl+Tab回到桌面-按VZ-点那个放大镜-选择AVA的进程-在数值那输入5-点第一次扫描-打开AVA-点死亡峡谷(别点确定)-回到桌面-打开VZ-输入4-点再次扫描-回到游戏-按拯救入门(别点确定)-回到桌面-打开VZ-输入5点再次扫描-回到...

JAVA成绩分为ABCDE五个等级,请算出一个有10个元素的int数组当中各成绩...
int[] grades = {0, 1, 2, 3, 4};int[] numbers = {3, 6, 2, 2, 1};\/\/ 计算分数数组 for (int i = 0; i < grades.length; i++) { int grade = grades[i];int number = numbers[i];avaScores[grade] = number;} ```这样我们就可以通过`avaScores`数组获取每个等级的...