如何将递归过程写入.txt文件?

时间:2014-11-24 16:20:41

标签: recursion

任何人都可以帮助我如何将递归过程的过程写入.txt文件?

#include<iostream>
using namespace std;

int ack(int m,int n){
if(m==0){
         cout<<n<<"+1"<<endl;
         return n+1;
         }
         else if((m!=0) && (n==0)){
              cout<<"a("<<m<<"-1,1)"<<endl;
              return ack(m-1,1);
              }
              else if((m!=0) && (n!=0)){
                   cout<<"a("<<m<<"-1,a("<<m<<","<<n<<"-1)"<<endl;
                   return ack(m-1,ack(m,n-1));
                   }
                   }                       
int main(){
cout<<ack(3,4)<<endl<<endl;
system("pause");   
}

我试过这个

ofstream filestream("filename..txt");

但它只写结果

1 个答案:

答案 0 :(得分:0)

有更好的方法可以做到这一点,但我觉得这个更简单:

#include <iostream>
#include <fstream>

using namespace std;

ofstream file("filename.txt");
int ack(int m, int n){
    if (m == 0){
        file << n << "+1" << endl;
        return n + 1;
    }
    else if ((m != 0) && (n == 0)){
        file << "a(" << m << "-1,1)" << endl;
        return ack(m - 1, 1);
    }
    else if ((m != 0) && (n != 0)){
        file << "a(" << m << "-1,a(" << m << "," << n << "-1)" << endl;
        return ack(m - 1, ack(m, n - 1));
    }
}
int main(){
    file << ack(3, 4) << endl << endl;
    system("pause");
}

另一种方法是将文件处理程序作为参数传递。这有助于避免我使用的全局,但需要对代码进行更多更改才能实现。