导航:首页 > 编程语言 > java编写水仙花

java编写水仙花

发布时间:2022-10-03 03:32:32

❶ 用java编程求出水仙花数将它们写入文件file.txt中,然后从文件中读出,在屏幕上输出显示

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.PrintWriter;

public class Number
{
public static void main(String[] args) throws Exception
{
//文件放在d盘,名字为file.txt
File f = new File("d:"+File.separator+"file.txt");
f.createNewFile();
writerFile(f, 1000000);//数值自己输入!不过太大了可能要等好久
printConsole(f);
}

/**
* 读取文件打印的控制台
*
* @param f
* @throws Exception
*/
private static void printConsole(File f) throws Exception
{
BufferedReader bReader = new BufferedReader(new FileReader(f));
String str = null;
while ((str = bReader.readLine()) != null)
{
System.out.println(str);
}
bReader.close();
}

/**
* 获取水仙花数写入文件
*
* @param f
* @param max
* @throws Exception
*/
private static void writerFile(File f, int max) throws Exception
{
PrintWriter out = new PrintWriter(f);
for (int i = 100; i < max; i++)
{
String iString = i + "";
char[] ic = iString.toCharArray();
double sum = 0;
for (int j = 0; j < ic.length; j++)
{
sum = sum + Math.pow(new Double((ic[j] - '0')), new Double(ic.length));
}
if (sum == i)
{
out.println(iString);
}
}
out.close();
}
}

❷ java编的水仙花数

你从给i赋值的时候就错了.一个3位数对100取余后,结果是他的后两位数.就是说如果这个3位数是123的话,123%100的结果是23而不是你想要求的1.所以给i,j,k赋值的几句代码可以改为:i=num/100;j=num/10%10;k=num%10;这样就没有错误了.

❸ java水仙花用combine写

水仙花数是指一个 n 位数 ( n≥3 )。
水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 5^3+ 3^3 = 153)。

❹ java编程求水仙花数

一个是0到999循环带入
一个是多层循环
区别应该在代码性能上
可以将数值加大 然后使用程序运行时间进行对比一下

第2个 abc都为0的时候 也能成立啊,所以你应该 修改成从1开始初始化abc

❺ java求水仙花数

按照你的要求编写的求N位水仙花数的程序如下

importjava.util.Scanner;
publicclassCCC{
publicstaticvoidmain(String[]args){
System.out.print("请输入正整数N(3<=N<=7):");
Scannersc=newScanner(System.in);
intN=sc.nextInt();
if(N<3||N>7){
System.out.println("N<3或者N>7");
return;
}
intmin=(int)Math.pow(10,N-1);
intmax=(int)Math.pow(10,N);
for(inti=min;i<max;i++){
inttmp=i;
intj=0;
inta[]=newint[N];
while(tmp!=0){
a[j]=tmp%10;
tmp=tmp/10;
j++;
}
intsum=0;
for(intk=0;k<N;k++){
sum=sum+(int)Math.pow(a[k],N);
}
if(sum==i){
System.out.println(i);
}
}
}
}

运行结果

请输入正整数N(3<=N<=7):4

1634

8208

9474

❻ 水仙花数 java 程序

打印出所有的"水仙花数"的程序:
package shuixianhuashu;
import shuixianhuashu.shuixianhuashu; public class shuixianhuashu {
static Boolean isSxh(int m){ int a1,a2,a3; a1=m/100; a2=m%100/10; a3=m%10; if(m<3) return false;
else if( (a1*a1*a1+a2*a2*a2+a3*a3*a3) == (a1*100+a2*10+a3) )
return true; else
return false;
}
public static void main(String[] args){ System.out.println("1000以内的水仙花数:"); shuixianhuashu s = new shuixianhuashu(); for(int i=101;i<1000;i++) if(s.isSxh(i))
System.out.print(i+"\t"); } }

运行结果:
1000以内的水仙花数: 153
370 371 407
【扩展】
所谓"水仙花数"是指一个三位数,其各位数字 立方和等于该数本身。

❼ 怎样用Java编写“水仙花”

水仙花数是指一个n位数(n≥3),它的每个位上的数字的n次幂之和等于它本身。(例如:1^3+5^3+3^3=153)

❽ JAVA编水仙花数

public void isNumber(int num)
{
String numm=""+ num;//首先把你输入的整型数转换成字符类型
int len=numm.length();//得到你输入的数的个数(你要判断的数是三位数、四位数、、、)
int [] nums=new int [len];//声明一个数组来保存输入的这个数分别拆分后的单个值,如153 (1、5、3)
int temp=0,i=0;
while(num>10)//用循环分别把这个位的每个位上的值保存在数组中
{
nums[i] = num % 10;
String nu=numm.substring(0, (numm.length()-(i+1)));
num =Integer.parseInt(nu);

i++;
if(num<10)
{
nums[i]=num;
break;
}
}
for (int j = 0; j < nums.length;j++)
{//用循环得到数组中无素的值累加
temp += (int) Math.pow(nums[j], nums.length);
}
num=Integer.parseInt(numm);
if(temp==num)//判断累加后的结果是否与输入的值一致
{
( System.err.println(num+"是水仙花数!"); }
else
{
System.err.println(num+"不是水仙花数!"); }
}

public static void main(String [] args)
{
Scanner input =new Scanner(System.in);
System.out.println("请输入一个数字:");
int num = input.nextInt();
isNumber(num);
}
}

❾ java编程学习水仙花数问题

你的程序主要是每个数前,sum变量没有置0

改正后的水仙花数的Java程序如下(改动的地方见注释)

public class a99{

public static void main(String[] arge){

int sum=0,t=0;

for(int i=100;i<1000;i++){

t=i;

sum=0;//这里加一句,每个数字都要初始化sum=0

while(t!=0){

sum += ((t%10)*(t%10)*(t%10));

t /= 10;

}

if(sum==i)

System.out.println(i+"是水仙花数");//这里printf改成println

}

}//这里加大括号

}//这里加大括号

❿ 用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);

}

}

}

}

(10)java编写水仙花扩展阅读

水仙花数只是自幂数的一种,严格来说3位数的3次幂数才称为水仙花数。

一位自幂数:独身数

两位自幂数:没有

三位自幂数:水仙花数

四位自幂数:四叶玫瑰数

五位自幂数:五角星数

六位自幂数:六合数

七位自幂数:北斗七星数

八位自幂数:八仙数

九位自幂数:九九重阳数

十位自幂数:十全十美数

阅读全文

与java编写水仙花相关的资料

热点内容
母乳人妻伦理片 浏览:843
电影院被强行猛插 浏览:208
80年代台湾老电影红楼梦 浏览:278
大疆带屏控如何安装app 浏览:945
国产大胸电影 浏览:706
模拟器中的pco的命令提示窗口 浏览:874
萝卜双端源码 浏览:873
魔域gm易语言工具源码 浏览:452
机械设计手册pdf电子版 浏览:98
为什么网吧服务器会掉盘 浏览:526
文电通pdf套装版4 浏览:327
如何使用百度地图服务器地址 浏览:921
吉林租服务器托管云服务器 浏览:781
中越反击战电影全集 浏览:116
溯源码验证码无效 浏览:354
风月片有酷网站 浏览:687
大尺度电影韩剧 浏览:680
安卓手机怎么联接a 浏览:716
好色小姨 小说 浏览:677
网站的源码怎么使用 浏览:61