Java 编程找出所有的水仙花数(水仙花数)。

 我来答
阿派讲故事
2018-09-07 · TA获得超过3136个赞
知道答主
回答量:4
采纳率:100%
帮助的人:3241
展开全部

代码如下:

package com.vo;

public class Shuixianhua {

public static void main(String[] args) {

int a=0;
int b=0;
int c=0;
for(int i=100;i<999;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);
}

}

}

首先水仙花数”是指一个三位数,其各位数字立方和等于该数,

如:153是一个“水仙花数”,因为1的三次方+5的三次方+3的三次方等于153

解此题的关键是怎能样从一个三位数中分离百位数、十位数、个位数。可以这样做,设该三位数以i代表,由a,b,c三个数字组成。
(1)百位数字a:a=int(i/100).
(2)十位数字b:b=int((i-100*a)/10)
(3)个位数字c:c=i-int(i/10)*10.

然后在根据上述代码可得

扩展资料:

水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)。

参考资料:水仙花数百度百科

佛法度现佛门1
2011-04-13 · TA获得超过109个赞
知道答主
回答量:109
采纳率:0%
帮助的人:71.1万
展开全部
所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数
本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。

给你举例说明

求出100至999之间的所有“水仙花数”
找出100--999之间的所有“水仙花数”。所谓“水仙花数”是指一个三个数,其各位数字的立方和等于身。

解此题的关键是怎能样从一个三位数中分离百位数、十位数、个位数。可以这样做,设该三位数以i代表,由a,b,c三个数字组成。
(1)百位数字a:a=int(i/100).
(2)十位数字b:b=int((i-100*a)/10)
(3)个位数字c:c=i-int(i/10)*10.

代码如下:

package com.vo;

public class Shuixianhua {

public static void main(String[] args) {

int a=0;
int b=0;
int c=0;
for(int i=100;i<999;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);
}

}

}

参考资料: http://blog.sina.com.cn/s/blog_4889a88e010008bv.html

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
新一代搬砖人
2020-04-14 · TA获得超过121个赞
知道小有建树答主
回答量:326
采纳率:81%
帮助的人:86.9万
展开全部
public class NarcissisticNumber {
public List<Integer> getNarcissisticNumbers(int n) {
List<Integer> numbers = new ArrayList<>();
if(n==1){
for(int m = 0;m<10;m++){
numbers.add(m);
}
}else{
Integer min = this.getPower(10,n-1);
Integer max = this.getPower(10,n);
for(Integer i = min;i<max;i++){
Integer sum = 0;
for(int j = 1;j<=n;j++){
Integer m = i%getPower(10,j)/getPower(10,j-1);
Integer s = getPower(m,n);
sum+=s;
}
if(sum.equals(i)){
numbers.add(i);
}
}
}
return numbers;
}
private Integer getPower(int x, int y){
if(y == 0) return 1;
if(y == 1) return x;
return x*getPower(x, y-1);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友2a06144
2011-04-13 · 超过22用户采纳过TA的回答
知道答主
回答量:80
采纳率:0%
帮助的人:64.6万
展开全部
public class TestNumber {
public static void main(String[] args) {
int ls_num=0;
for(int i=100;i<=999;i++){
ls_num=0;
String num = i+"";
for(int j =0;j<num.length();j++){
ls_num=ls_num+Integer.parseInt(num.charAt(j)+"")*Integer.parseInt(num.charAt(j)+"")*Integer.parseInt(num.charAt(j)+"");
}
if(ls_num==i){
System.out.println(i+"是水仙花数");
}
}

}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
遇见你之前cTgSw
2019-06-15
知道答主
回答量:3
采纳率:0%
帮助的人:2088
展开全部
#include<stdio.h>
int main()
{
int a,b,c;
for(a=1;a<=9;a++)
for(b=0;b<=9;b++)
for(c=0;c<=9;c++)
if((a*100+b*10+c)==(a*a*a+b*b*b+c*c*c))
printf("%d ",a*100+b*10+c);
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式