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循环打印*图形
标题中的“21位水仙花数”是指在C语言中实现的一种数学问题。水仙花数(也称为自恋数或阿姆斯特朗数)是指一个n位数,其各位数字的n次幂之和等于该数本身。例如,370、371和407是3位的水仙花数,因为3^3 + 7^3 + 0^3...
基于labview的水仙花数测试代码,利用labview实现水仙花数的计算
看了网上求水仙花个数的代码,都是指定100-1000的固定区间。 于是写了个可变区间的小程序。 输入样例: 10 10000 输出: 个数
水仙花数,又称自恋数或阿姆斯特朗数,是指一个三位数,它的每个位上的数字的立方和等于这个数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。这个问题在编程领域是一个经典的练习,用来展示数字处理和...
2. 使用for循环遍历指定范围内的所有数字,例如从1到10000,对每个数字调用上述函数检查是否为水仙花数。 3. 如果找到一个水仙花数,可能将其打印出来或者存储到一个数组或列表中。 4. 可能还会有错误处理和输入验证...
水仙花数,又称 Narcissistic Number,在数学中是指一个n位正整数,它的每一位数字的n次幂之和等于该数本身。比如题目中提到的例子,153就是一个三位水仙花数,因为1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153。这里,n是...
4. for循环:代码中的for循环用于遍历给定范围内的每个数,并检查其是否为水仙花数。 5. 条件语句if:在代码中,if语句用于判断当前数字i的各位数字的n次幂之和是否等于i本身。如果满足条件,则输出该数字。 接...
本文件"基于python循环判断一个数是否为水仙花数.zip"显然是一个关于使用Python进行数值判断的教程,特别是针对“水仙花数”这一概念。水仙花数,又称自恋数或阿姆斯特朗数,是指一个n位数(n>=3),其各位数字的n次...
`PrintN` 函数的任务是打印出给定区间 `(m, n)` 内的所有水仙花数。这个函数通过一个for循环遍历区间内的每个整数,并调用 `narcissistic` 函数来检查每个数是否为水仙花数。如果是,就将其打印出来。注意,由于题目...
例如,要找到所有四位数的水仙花数,可以将`range(100,1000)`更改为`range(1000,10000)`,这样程序就会遍历所有四位数,并检查哪些是水仙花数。 以上就是对所给文件标题、描述、标签以及部分内容中提到的“水仙花数...
本题要求编写两个函数,一个判断给定整数是否水仙花数,另一个按从小到大的顺序打印出给定区间(m,n)内所有的水仙花数。 函数接口定义: int narcissistic( int number ); void PrintN( int m, int n ); 函数...
水仙花数是一个特殊的数,它是一个三位数,且各位数字的三次幂之和等于该数本身。例如,153是一个水仙花数,因为它满足1³ + 5³ + 3³ = 153的条件。 首先,我们需要了解几个关键的PHP函数和概念。在提供的代码中...
标题 "c代码-所有的水仙花数" 指向的是一个C语言程序,该程序旨在寻找并打印出所有在指定范围内(通常是1到10000)的水仙花数。水仙花数是一种特殊的三位数,其每一位数字的立方和等于该数本身。例如,153是一个水仙...
1. 水仙花数:水仙花数是指一个三位数,其各位数字的立方和等于该数本身。例如,153就是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。我们可以使用三重循环来找出所有三位水仙花数。外层循环控制百位数(1到9),中间...
寻找水仙花数。2.百钱买百鸡3.CRAPS游戏4.生成斐波那契数列的前20个数5.找出10000以内的完美数6.输出100以内所有的素数 1.寻找水仙花数。 说明:水仙花数也被称为超完全数字不变数、自恋数、自幂数、阿姆斯特朗数,...
2. 编写程序,求100至500的范围内有多少个水仙花数。 知识点:循环语句、条件语句、水仙花数 在这个题目中,我们需要使用循环语句来遍历所有可能的数字,然后使用条件语句来判断是否满足水仙花数的条件。我们可以...
例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。这种数在编程和数学游戏中经常出现,用于检验数字的特性。 4. **自守数**: 自守数是当一个数的平方后,尾数仍然等于该数自身的自然数。比如6和25是自守数,...
4. **寻找最大的水仙花数**:水仙花数是指一个三位数,它的每个位上的数字的立方和等于该数本身。程序通过三层循环,分别获取百位、十位和个位的数字,然后进行比较。 5. **猴子吃桃问题**:这是关于递归的一个问题...