2014-11-24 20 views
0

任何人都可以帮助我如何将递归过程的过程写入.txt文件?如何将递归过程写入.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"); 

,但只写结果

回答

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"); 
} 

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