`

求10000内的水仙花数

    博客分类:
  • java
 
阅读更多
package equals;

import java.io.File;
import java.io.FileWriter;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.BufferedReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

/**
 * 
 * @author me
 * 将10000数写入一txt文件,从中找出所有的水仙花数,
 * 将结果写入另一文件
 */
public class FileNumHandle {
	
	private static final int MAX = 10000;
	private static final String inPath = "G:/test/java/file/1.txt";
	private static final String outPath = "G:/test/java/file/2.txt";
	
	public static void createFile(String path){

		try{
			String dir = path.substring(0,path.lastIndexOf("/"));
			File dirPath = new File(dir);
			if(!dirPath.exists()){
				dirPath.mkdir();
			}
		}catch(Exception e){
			System.out.println("目录不可创建,请检查权限及盘符");
		}
		
		try{
			File file = new File(path);
			if(!file.exists()){
				file.createNewFile();
			}
		}catch(Exception e){
			System.out.println("文件不可创建,请检查权限及盘符");
		}
	}
	
	public static void WriteNumToFile(int max,String path){
		createFile(path);
		
		try{
			FileWriter fw = new FileWriter(path);
			BufferedWriter bw = new BufferedWriter(fw);
			for(int i = 0; i < max; i++){
				bw.write(String.valueOf(i));
				bw.newLine();
			}
			bw.flush();
			bw.close();
			fw.close();
		}catch(IOException e){
			e.printStackTrace();
		}
	}
	public static void WriteNumToFile(List a,String path){
		createFile(path);
		
		try{
			FileWriter fw = new FileWriter(path);
			BufferedWriter bw = new BufferedWriter(fw);
			for(int i = 0; i < a.size(); i++){
				bw.write(String.valueOf(a.get(i)));
				bw.newLine();
			}
			bw.flush();
			bw.close();
			fw.close();
		}catch(IOException e){
			e.printStackTrace();
		}
	}
	
	public static List narcissusNum(String inPath){
		List list = new ArrayList();
		try{
			String line="";
			int tmpNum = 0;
			int i,j,k,m;//千位、百位、十位、个位
			FileReader fr = new FileReader(inPath);
			BufferedReader br = new BufferedReader(fr);
			while(br.ready()){
				line = br.readLine();
				tmpNum = Integer.parseInt(line);
				i = tmpNum / 1000;
				j = tmpNum / 100 % 10;
				k = tmpNum % 100 / 10;
				m = tmpNum % 10;
				if(Math.pow(i, 3) + Math.pow(j, 3) + Math.pow(k, 3) + Math.pow(m, 3) == tmpNum){
					list.add(tmpNum);
				}
			}
			
		}catch(IOException e){
			e.printStackTrace();
		}
		return list;
	}
	public static void main(String[] args){
		WriteNumToFile(MAX,inPath);
		WriteNumToFile(narcissusNum(inPath),outPath);
	}
}


分享到:
评论

相关推荐

    100到10000之间的水仙花数

    100到10000之间的水仙花数

    1-10000范围内的水仙花数

    打印出1-10000范围内的所有“水仙花数”,以及用for循环打印*图形

    求21位水仙花数(C语言实现)

    标题中的“21位水仙花数”是指在C语言中实现的一种数学问题。水仙花数(也称为自恋数或阿姆斯特朗数)是指一个n位数,其各位数字的n次幂之和等于该数本身。例如,370、371和407是3位的水仙花数,因为3^3 + 7^3 + 0^3...

    labview 1000以下的水仙花数

    基于labview的水仙花数测试代码,利用labview实现水仙花数的计算

    区间内水仙花数的个数

    看了网上求水仙花个数的代码,都是指定100-1000的固定区间。 于是写了个可变区间的小程序。 输入样例: 10 10000 输出: 个数

    水仙花数_labview_

    水仙花数,又称自恋数或阿姆斯特朗数,是指一个三位数,它的每个位上的数字的立方和等于这个数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。这个问题在编程领域是一个经典的练习,用来展示数字处理和...

    水仙花数Narcissistic Number穷举法计算程序.zip

    2. 使用for循环遍历指定范围内的所有数字,例如从1到10000,对每个数字调用上述函数检查是否为水仙花数。 3. 如果找到一个水仙花数,可能将其打印出来或者存储到一个数组或列表中。 4. 可能还会有错误处理和输入验证...

    python 计算1000以内的水仙花数

    水仙花数,又称 Narcissistic Number,在数学中是指一个n位正整数,它的每一位数字的n次幂之和等于该数本身。比如题目中提到的例子,153就是一个三位水仙花数,因为1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153。这里,n是...

    python简易实现任意位数的水仙花实例

    4. for循环:代码中的for循环用于遍历给定范围内的每个数,并检查其是否为水仙花数。 5. 条件语句if:在代码中,if语句用于判断当前数字i的各位数字的n次幂之和是否等于i本身。如果满足条件,则输出该数字。 接...

    基于python循环判断一个数是否为水仙花数.zip

    本文件"基于python循环判断一个数是否为水仙花数.zip"显然是一个关于使用Python进行数值判断的教程,特别是针对“水仙花数”这一概念。水仙花数,又称自恋数或阿姆斯特朗数,是指一个n位数(n&gt;=3),其各位数字的n次...

    习题5使用函数输出水仙花数 (20分) .docx

    `PrintN` 函数的任务是打印出给定区间 `(m, n)` 内的所有水仙花数。这个函数通过一个for循环遍历区间内的每个整数,并调用 `narcissistic` 函数来检查每个数是否为水仙花数。如果是,就将其打印出来。注意,由于题目...

    水仙花数(Narcissistic Number)也被称为阿姆斯特朗数(Armstrong Number).txt

    例如,要找到所有四位数的水仙花数,可以将`range(100,1000)`更改为`range(1000,10000)`,这样程序就会遍历所有四位数,并检查哪些是水仙花数。 以上就是对所给文件标题、描述、标签以及部分内容中提到的“水仙花数...

    使用函数输出水仙花 文字版

    本题要求编写两个函数,一个判断给定整数是否水仙花数,另一个按从小到大的顺序打印出给定区间(m,n)内所有的水仙花数。 函数接口定义: int narcissistic( int number ); void PrintN( int m, int n ); 函数...

    PHP求小于1000的所有水仙花数的代码

    水仙花数是一个特殊的数,它是一个三位数,且各位数字的三次幂之和等于该数本身。例如,153是一个水仙花数,因为它满足1³ + 5³ + 3³ = 153的条件。 首先,我们需要了解几个关键的PHP函数和概念。在提供的代码中...

    c代码-所有的水仙花数

    标题 "c代码-所有的水仙花数" 指向的是一个C语言程序,该程序旨在寻找并打印出所有在指定范围内(通常是1到10000)的水仙花数。水仙花数是一种特殊的三位数,其每一位数字的立方和等于该数本身。例如,153是一个水仙...

    C++第6课多重循环.ppt

    1. 水仙花数:水仙花数是指一个三位数,其各位数字的立方和等于该数本身。例如,153就是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。我们可以使用三重循环来找出所有三位水仙花数。外层循环控制百位数(1到9),中间...

    程序控制结构

    寻找水仙花数。2.百钱买百鸡3.CRAPS游戏4.生成斐波那契数列的前20个数5.找出10000以内的完美数6.输出100以内所有的素数 1.寻找水仙花数。 说明:水仙花数也被称为超完全数字不变数、自恋数、自幂数、阿姆斯特朗数,...

    C语言程序题库.pdf

    2. 编写程序,求100至500的范围内有多少个水仙花数。 知识点:循环语句、条件语句、水仙花数 在这个题目中,我们需要使用循环语句来遍历所有可能的数字,然后使用条件语句来判断是否满足水仙花数的条件。我们可以...

    数学问题PPT学习教案.pptx

    例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。这种数在编程和数学游戏中经常出现,用于检验数字的特性。 4. **自守数**: 自守数是当一个数的平方后,尾数仍然等于该数自身的自然数。比如6和25是自守数,...

    c语言编程大题.pdf

    4. **寻找最大的水仙花数**:水仙花数是指一个三位数,它的每个位上的数字的立方和等于该数本身。程序通过三层循环,分别获取百位、十位和个位的数字,然后进行比较。 5. **猴子吃桃问题**:这是关于递归的一个问题...

Global site tag (gtag.js) - Google Analytics