一道java编程题:打印出1~~10000范围中所有的“水仙花数”,所谓的“水仙花数”是指一个3位数其各位数字立方和等于该数本身。例如,153是一个“水仙花数”,因为 153 = 1³ + 5³ + 3³ 。 (只用java基本的语法知识做出来)相关知识点: 试题来源: 解析反馈 收藏
这个范围,使用穷举法就可以了。耗时不过千分之几秒。一共有16个。附:计算结果和fortran代码
水仙花数具备“各位数字的位数次方和等于其自身”的性质。遍历1~10000之间可能有解的部分,先测出其数字的位数n,再分离数字的各位,求各位数字的n次方的和便是结果。具体操作可先将要判断的数字转换为数字字符串,这样求其位数和分离数位都极为方便。代码如下:include "stdio.h"#include "string.h"#...
所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数 本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。在本题中,x指的是这个数的百位数,比如130的话,130/100=1.3,但是变量类型是整型,所以是1.3也就是1.y是十位数字,同理你可以带入看一下。Z是...
/** * 打印 10000 以内的所有水仙花数 * * 所谓“水仙花数”即一个整数满足其值等于各个数位的立方和。 * 例如:153是一个水仙花数,因为153=1*1*1+5*5*5+3*3*3 * * 1) 检查一个数num是否为水仙花数 * 2) 检查一个范围内全部的num是否为水仙花数 * * num = 153; * n1 = ...
程序运行第 1 次 请输入几位水仙花数:5 5 54748 消耗的时间是:4.44秒 5 92727 消耗的时间是:4.68秒 5 93084 消耗的时间是:4.68秒 程序运行第 2 次 请输入几位水仙花数:6 6 548834 消耗的时间是:8.54秒 程序运行第 3 次 请输入几位水仙花数:7 7 1741725 消耗的时间是:10.58秒 7 ...
2. 在第一个`for`循环中,`if(a<=1000)`的条件判断可能不必要,因为题目要求输出1到10000之间的水仙花数,循环条件应该是`1<=i<=10000`。3. `break`语句在`if(a==1001)`中可能导致程序过早退出,只遍历到1000就停止了,这不符合要求。4. 在第二个`for`循环中,`for(i=1000;1<=10000;i...
public class ShuiXian {public static void main(String[] args) { int a = 0;//百位数字 int b = 0;//十位数字 int c = 0;//个位数字 int temp = 0;//百位数字立方+数位数字立方+个位数字立方 for (int i = 100; i < =999; i++) { a = i/100;//计算...
水仙花数只是自幂数的一种,严格来说三位数的3次幂数才成为水仙花数。如153=1^3+5^3+3^3,这种数称为水仙花数。若是10000以内,则必有四位数,四位自幂数不叫水仙花数,而叫做四叶玫瑰数。现给一种简单的求水仙花数的代码,自创的。x=0:9;y=x;z=x;[x,y,z]=meshgrid(x,y,z);u=x.^...