先来描述一下问题:
C++用递归的方法把一个整数n转换成字符串可以是任意位的整数。
话不多说,直接上代码。
#include<iostream>#include<string>using namespace std;string c="";string b="";int main(){void convert(int); //函数声明。int m;cout<<"请输入一个整数:"<<endl;cin>>m;if(m<0){cout<<"-"; //如果是负数,将它变成负数再处理。m=-m;}convert(m);cout<<c;cout<<endl;return 0;}void convert(int m){int i;if((i=m/10)!=0) //检查n是否为个位数convert(i); //如果不是,递归调用convert(转换)函数。b=m%10+48;c=c+b;}
对递归算法的理解:
当执行递归语句进入下一层时,这一层的程序并没有停止,相当于暂停,当进入递归算法的结束条件是,开始从最后一层,一层一层的执行。之后的语句也随着一层一层的执行。