先来描述一下问题:
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;
}
对递归算法的理解:
当执行递归语句进入下一层时,这一层的程序并没有停止,相当于暂停,当进入递归算法的结束条件是,开始从最后一层,一层一层的执行。之后的语句也随着一层一层的执行。