java求水仙花数

求100-999之间所有水仙花数... 求100-999之间所有水仙花数 展开
 我来答
小西
2015-11-03 · 运营
小西
运营
采纳数:218 获赞数:3887
百度知道热心用户

向TA提问 私信TA
展开全部
  分析:水仙花数是指:一个三位数,其各位数字立方和等于该数本身。例如:370=33+73+00.这就说明370是一个水仙花数。
  所以要判断一个三位数是不是水仙花数,得先取得这个三位数的的个位,十位和百位。
  1:先取得他的百位:int BaiWei = x/100; 因为int是整形,所以不会进行四舍五入,也不会管小数点后面的数。
  再取得十位:int ShiWei = (x-BaiWei*100)/10;先用这个数减去百位数*100,再除以10,原因同上。
  最后取得个位数:int GeWei = x-BaiWei*100-ShiWei*10.很明显,就能得到个位数。
  2:
  intb = x/100;
  int s = x/100%10;
  int g = x%10;
  求立方的方法:
  1,x = Baiwei*Baiwei*Baiwei+ShiWei*ShiWei*ShiWei+GeWei*GeWei*GeWei
  2,Java提供求n次方的方法:java.lang.Math.pow(a, b);其表示为a的b次方。
  最后程序:
  第一种:

  public class ShuiXianHuaShu {
public static void main(String[] args) {
int x = 0; //定义水仙花数的个数
for(int i=100;i<=999;i++){
int b = i/100; //取得百位数
int s = (i-100*b)/10; //取得十位数
int g = (i-s*10-b*100); //取得个位数

if(i==g*g*g+s*s*s+b*b*b){
x++; //每次符合水仙花数条件,则x+1;
System.out.print(i+" "); //输出符合条件的数
}
}System.out.println(); //换行
System.out.println("水仙花数总共有"+x+"个"); //输出水仙花数的总数
}
}

  第二种:

  public class ShuiXianHuaShu {
public static void main(String[] args) {
int x = 0; //定义水仙花数的个数
for(int i=100;i<=999;i++){
int b = i/100; //取得百位数
int s = i%100/10; //取得十位数
int g = i%10; //取得个位数

if(i==Math.pow(b, 3) + Math.pow(s, 3) + Math.pow(g, 3)){
x++; //每次符合水仙花数条件,则x+1;
System.out.print(i+" "); //输出符合条件的数
}
}System.out.println(); //换行
System.out.println("水仙花数总共有"+x+"个"); //输出水仙花数的总数
}
}
navel545
2012-01-01 · 超过18用户采纳过TA的回答
知道答主
回答量:206
采纳率:0%
帮助的人:145万
展开全部
什么叫用图形水仙花数? 我写一个可以让用户选择水仙花数位数,然后输出对应的水仙花数吧。 import java.io.*; public class NarcissisticNum { public
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
huangzihang10
2012-01-01 · TA获得超过187个赞
知道小有建树答主
回答量:280
采纳率:0%
帮助的人:93.6万
展开全部
public class shuixianhua {
public boolean fun(int i){
int s=0;
int n=(i+"").length();
for(int k=1;k<=n;k++){
int t1=(int)(i/Math.pow(10,k-1));
int t2=(int) Math.pow((t1%10),n);
s+=t2;
}
if(s==i){
return true;
}else{
return false;
}
}
public static void main (String[] args){
shuixianhua sub=new shuixianhua();
for(int a=100;a<=999999;a++){
if(sub.fun(a)){
System.out.println(a+"是水仙花数");
}
}
}
}
追问
麻烦写一下具体每一步是什么意思int n=(i+"").length();int t1=(int)(i/Math.pow(10,k-1));这些我都不知道是什么意思,POW是怎么转出来的啊
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式