‘壹’ java输出水仙花数
错误出在d这个变量上面,我知道你这里的d是为了得到这个数的个位数,但是你只是对100进行了模操作,那么这个结果就可能是两位数,明显和你的初衷不符,你应该在对100进行模操作的基础上再对10做模操作,改成:
public
class
shxhnum
{
public
static
void
main(string[]
args)
{
int
a,
b,
c,
d,
i
=
0;
system.out.println("你要找的水仙花数为:
");
for
(a
=
100;
a
<
1000;
a++)
{
b
=
a
/
100;
c
=
(a
/
10)
%
10;
d
=
a
%
100
%
10;
if
(a
==
b
*
b
*
b
+
c
*
c
*
c
+
d
*
d
*
d)
{
system.out.println(a);
i++;
}
}
system.out.println("你找的水仙花个数为:"
+
i);
}
}
‘贰’ java 打印出所有的 "水仙花数 "
水仙花数算法以153为例,153 = 1^3 +5^3+3^3=1+125+27=153;
int b3 = 153/100;因为都是整数型,所以除法结果为1省去小数。
int b2 = 153%100/10;%取余数得到53/10同上,结果为5没有小数。
int b1 = 153%10;153除以10的余数即为3,所以结果为3.
‘叁’ java水仙花数
public class ShuiXianShu
{
/**
* 题目:打印出100-999之间所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。
* 例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
* 1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。*
*/
public static void main(String[] args)
{
for(int i=100;i<=999;i++)
{
int geWei,shiWei,Wei;
Wei=i/100;
shiWei=(i-Wei*100)/10;
geWei=i-Wei*100-shiWei*10;
if(i==geWei*geWei*geWei+shiWei*shiWei*shiWei+Wei*Wei*Wei)
{
System.out.println(i);
}
}
}
}
这个是我以前做过的,楼主可以参考
‘肆’ 用java语言编写打印输出100 ――999之间所有的水仙花数
输入3就是100-999的
‘伍’ 用Java写个关于“水仙花数”的程序
按一下代码执行:
public class woo {
public static void main(String args[]) {
System.out.println("100-1000中的水仙花数有:");
for(int i=100;i<1000;i++){
int single = i%10;
int ten = i/10%10;
int hundred = i/10/10%10;
//水仙花数判断要求
if(i == (single*single*single+ten*ten*ten+hundred*hundred*hundred)){
System.out.println(i);
}
}
}
}
(5)打印水仙花数java扩展阅读:
水仙花数只是自幂数的一种,严格来说3位数的3次幂数才称为水仙花数。
一位自幂数:独身数
两位自幂数:没有
三位自幂数:水仙花数
四位自幂数:四叶玫瑰数
五位自幂数:五角星数
六位自幂数:六合数
七位自幂数:北斗七星数
八位自幂数:八仙数
九位自幂数:九九重阳数
十位自幂数:十全十美数
‘陆’ java中能否使用方法输出水仙花数
就以你这个阔以这么写:
publicstaticvoidmain(String[]args){
for(inti=100;i<1000;i++){
intx=ShuiXianHua(i);
if(x!=0){
System.out.println(i);
}
}
}
publicstaticintShuiXianHua(intx){
inta,b,c;
a=x%10;
b=x/10%10;
c=x/100%10;
if(a*a*a+b*b*b+c*c*c==x){
returnx;
}
return0;
}
//另外一种写法,
publicstaticvoidgetNum(){
for(inti=100;i<1000;i++){
inta=i,b=0,c=0;
while(a>0){
b=a%10;
c+=b*b*b;
a/=10;
}
if(c==i){
System.out.println(i);
}
}
}
//相信自己,其实你写的很好,很直观!
‘柒’ java中for循环怎样打印出所有的"水仙花数"
先写一个函数计算一个数字的立方为多少。命名为cube()
private static int cube(int n) {
return n * n * n;
}
判断这个数是不是水仙花数,求每一位数上的数的立方和是否为原数字本身即可。
‘捌’ 用java打印出所有的“水仙花数”。所谓的“水仙花数”是指一个三位数,其各位数字立方和等于该数本身
publicstaticvoidmain(finalString[]args){
System.out.println("所有的水仙花数如下:");
intx;//百分位
inty;//十位
intz;//个位
for(inti=100;i<1000;i++){
x=i/100;
y=(i-x*100)/10;
z=i%10;
if(i==(cubic(x)+cubic(y)+cubic(z))){
System.out.println(String.format("找到水仙花数:%d",i));
}
}
}
privatestaticintcubic(finalintn){
return(n*n*n);
}
所有的水仙花数如下:
找到水仙花数:153
找到水仙花数:370
找到水仙花数:371
找到水仙花数:407
‘玖’ java编程,实现打印出所有的 "水仙花数 "
public static boolean judge(int i){
int min=0;//设置查找水仙花数的最小值
int max=1000;//设置查找水仙花数的最大值
int ge = i%10;
int shi = i/10%10;
int = i/100;
if(i==ge*ge*ge+shi*shi*shi+**){
System.out.println(i+"是水仙花数字");
}
}
public static void main(String[] args) {
for(int i=min;i<max;i++){
judge(i);
}
‘拾’ java输出所有水仙花数
publicstaticvoidmain(String[]args){
intx=0;//定义水仙花数的个数
for(inti=1;i<=1000;i++){
intb=i/100;//取得百位数
ints=(i-100*b)/10;//取得十位数
intg=(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+"个");//输出水仙花数的总数
}
分析:水仙花数是指:一个三位数,其各位数字立方和等于该数本身。例如:370=33+73+00.这就说明370是一个水仙花数。
所以要判断一个三位数是不是水仙花数,得先取得这个三位数的的个位,十位和百位。这里我由一下几种方法:
1:
先取得他的百位:intBaiWei=x/100;因为int是整形,所以不会进行四舍五入,也不会管小数点后面的数。
再取得十位:intShiWei=(x-BaiWei*100)/10;先用这个数减去百位数*100,再除以10,原因同上。
最后取得个位数:intGeWei=x-BaiWei*100-ShiWei*10.很明显,就能得到个位数。