`

求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循环打印*图形

    区间内水仙花数的个数

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

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

    NULL 博文链接:https://touch-2011.iteye.com/blog/1033409

    python 计算1000以内的水仙花数

    今天小玉跟大家讲讲如何用python来实现1000以内的水仙花数的数量统计。 编码思路: 在输入一个任意的数字i的时候,首先需要判断这个数字为几位数,也就是要输出一个位数n 分解这个数的各个位的数字。 判断每个位上的...

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

    今天小编就为大家分享一篇python简易实现任意位数的水仙花实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

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

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

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

    PHP求小于1000的所有水仙花数的代码,需要的朋友可以参考下。

    java 求水仙花 和猴子选大王

    求水仙花数量指定位数 例如输入3范围则在100-999 5的号则是10000-99999 猴子选择选大王

    程序控制结构

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

    华为od三道机试题.pdf

    输入一组字符串, 求字符串分组后,每组的和为水仙花数 (注:水仙花数是一个三位数 其个位、十位、百位的立次方 的和等于自身 如 371 = 3^3 + 7^3 + 1^1 ) - (1) 如果无法找到该分组 ,返回0 ; - (2) 找到该分组...

    Python构造程序逻辑练习题答案源码

    1.生成斐波那契数列的前20个数。 2.找出10000以内的完美数。 3.输出100以内所有的素数。 4.寻找水仙花数。 5.百钱百鸡问题。 6.CRAPS赌博游戏。

    最新JAVA编程题全集_50题及答案

    程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。 public class lianxi02 { public static void main(String[] args) { int count = 0; for(int i=...

    达内 coreJava 习题答案

    6、输出所有的水仙花数,把谓水仙花数是指一个数3位数,其各各位数字立方和等于其本身, 例如: 153 = 1*1*1 + 3*3*3 + 5*5*5 class DafodilNumber{ public static void main(String[] args){ System.out....

Global site tag (gtag.js) - Google Analytics