3个回答
展开全部
分析:水仙花数是指:一个三位数,其各位数字立方和等于该数本身。例如: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+"个"); //输出水仙花数的总数
}
}
所以要判断一个三位数是不是水仙花数,得先取得这个三位数的的个位,十位和百位。
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+"个"); //输出水仙花数的总数
}
}
展开全部
什么叫用图形水仙花数? 我写一个可以让用户选择水仙花数位数,然后输出对应的水仙花数吧。 import java.io.*; public class NarcissisticNum { public
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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+"是水仙花数");
}
}
}
}
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是怎么转出来的啊
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询