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之间的水仙花数
打印出1-10000范围内的所有“水仙花数”,以及用for循环打印*图形
看了网上求水仙花个数的代码,都是指定100-1000的固定区间。 于是写了个可变区间的小程序。 输入样例: 10 10000 输出: 个数
NULL 博文链接:https://touch-2011.iteye.com/blog/1033409
今天小玉跟大家讲讲如何用python来实现1000以内的水仙花数的数量统计。 编码思路: 在输入一个任意的数字i的时候,首先需要判断这个数字为几位数,也就是要输出一个位数n 分解这个数的各个位的数字。 判断每个位上的...
今天小编就为大家分享一篇python简易实现任意位数的水仙花实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
本题要求编写两个函数,一个判断给定整数是否水仙花数,另一个按从小到大的顺序打印出给定区间(m,n)内所有的水仙花数。 函数接口定义: int narcissistic( int number ); void PrintN( int m, int n ); 函数...
PHP求小于1000的所有水仙花数的代码,需要的朋友可以参考下。
求水仙花数量指定位数 例如输入3范围则在100-999 5的号则是10000-99999 猴子选择选大王
寻找水仙花数。2.百钱买百鸡3.CRAPS游戏4.生成斐波那契数列的前20个数5.找出10000以内的完美数6.输出100以内所有的素数 1.寻找水仙花数。 说明:水仙花数也被称为超完全数字不变数、自恋数、自幂数、阿姆斯特朗数,...
输入一组字符串, 求字符串分组后,每组的和为水仙花数 (注:水仙花数是一个三位数 其个位、十位、百位的立次方 的和等于自身 如 371 = 3^3 + 7^3 + 1^1 ) - (1) 如果无法找到该分组 ,返回0 ; - (2) 找到该分组...
1.生成斐波那契数列的前20个数。 2.找出10000以内的完美数。 3.输出100以内所有的素数。 4.寻找水仙花数。 5.百钱百鸡问题。 6.CRAPS赌博游戏。
程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。 public class lianxi02 { public static void main(String[] args) { int count = 0; for(int i=...
6、输出所有的水仙花数,把谓水仙花数是指一个数3位数,其各各位数字立方和等于其本身, 例如: 153 = 1*1*1 + 3*3*3 + 5*5*5 class DafodilNumber{ public static void main(String[] args){ System.out....