Java第三次作业第五题

5. 【问题描述】Fibonacci序列处理

从文件in.txt中读取第一个数作为Fibonacci数列的开始数n,读取第二个数,作为需要写入的数的个数m。

将从n开始的m个Fibonacci数列写入到文件out.txt中。

【输入形式】文件in.txt

【输出形式】文件out.txt

【样例输入】

3 4

【样例输出】

3 4 7 11

【样例说明】

【评分标准】

分析:个人认为此题有问题,没有给出第二个数,此题默认第二个数的值为第一个数加一

package naizi;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
public class Fibonacci {
public static void rwFile(){
    FileWriter fw = null;
    BufferedReader br = null;
    try {
    
File file = new File("out.txt");
    
if(file.exists()){
    
file.delete();
    
}
    
br = new BufferedReader(new InputStreamReader(new FileInputStream("in.txt")));
    
fw = new FileWriter("out.txt", true);
        String line = null;
        while ((line = br.readLine()) != null) {
        
int n1 = line.indexOf(" ");
        
String m1 = line.substring(0, n1);
        
int a = Integer.valueOf(m1);
        
int b=a+1;
        
String m2 = line.substring(n1+1,line.length());
        
int d = Integer.valueOf(m2);
        
int c = a + b;
        
String Fibo = m1+" "+String.valueOf(b);
        
for(int i=2;i<d;i++){
        
Fibo += " ";
        
Fibo += String.valueOf(c);
        
a=b;
        
b=c;
        
c=a+b;
        
}
            fw.write(Fibo);
            fw.flush();
        }
        br.close();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        if (fw != null) {
            try {
                fw.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }
}
public static void main(String[] args) {
    rwFile();
}
}

运行结果如图:

1. in.txt

s0VzeL8.png

2. out.txt

qapRFaQ.png

3. 目录结构:

xyhFm0R.png

转载于:https://www.cnblogs.com/zqm-sau/p/10331799.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值