用递归的方法将一个整数n转换成字符串
2013-06-13 23:17
357 查看
要求:
用递归的方法将一个整数n转换成字符串。例如,输入438,应输出“483”。n的位数不确定,可以是任意的整数。分析:应该将输入的数中的每个数进行剥离,然后从头到尾将每个数字转化为对应的字符。递归函数Covert需要完成的工作是,当n不是个位数(n/10!=0)的时候,将n/10作为参数进行递归调用函数Covert,然后将数字n的最后一位数字转化为字符串。因为每次的递归调用Covert函数,是发生在将n的最后一个数字转化为字符串的操作之前的,所以会依次将数字n的每个数字转化为字符。
方法一:
#include <iostream> using namespace std; void Convert(int n) { char p; if(n/10 != 0) { Convert(n/10); //通过递归输出 } p=n%10+48;//将数字转化成对应的字符串 ,并将最后一位数字转化为字符 cout<<p; } int main() { int n ; cout<<"please input an integer:"; cin>>n; cout<<"Outcome:"; if(n<0){ n=-n; cout<<"-"; Convert(n); }else{ Convert(n); } cout<<endl; return 0; }
分析:
首先在main函数中输入一个整数,然后通过Covert函数的递归,将n中每个数字转化为对应的字符,并输出。核心代码是:
p=n%10+48;这一句,原理是将当前的Covert(n ),中n的最低位进行输出。
方法二:
#include<iostream> using namespace std; char * Covert(int n, char * pointer){ char * p=pointer; if(n/10!=0){ p=Covert(n/10,p); } *p=n%10+'0';//将数字转化为字符 ++p; *p='\0';//为字符最后添加'\0' return p; } int main(){ int n; char buffer[20]; cout<<"please input an integer:"; cin>>n; cout<<"\nOutput:"; if(n<0){ n=-n; Covert(n,buffer); cout<<"-"<<buffer<<"\n\n"; }else{ Covert(n,buffer); cout<<buffer<<"\n\n"; } return 0; }貌似这个方法才更加符合题意,这是参照:http://zhidao.baidu.com/question/502758422.html
分析:
1、将数字转化为对应的字符,可以通过n%10+48来实现,也可以通过n%10+'0'来实现,因为‘0’的ASCII码的数值就是482、该算法中建立了一个数组buffer用来存放字符串,通过递归调用让数字前往后依次转化为字符,然后通过指针p的自增,将字符串依次存放到数组中,每次p自增之后都赋值‘\0’,当还有新的字符需要转化的时候,就会有新的值覆盖‘\0’,当没有新的数字转化的时候,就最为字符串的结束标志。
相关文章推荐
- 用递归的方法将一个整数n转换成字符串
- 用递归的方法将一个整数n转化为字符串(不是调用函数,直接输出)
- 用递归方法将整数n转换成字符串
- 将一个整数N转换成字符串!(递归和非递归、及——进制转化)
- 练习 4-12 运用 printd 函数的设计思想编写一个递归版本的 itoa 函数,即通过递归 调用把整数转换为字符串
- 将一个字符串转换成一个整数
- 用递归法将一个整数n转换成字符串。例如,输入483,应输出字符串“483”。n的位数不确定,可以是任意位数的整数。
- 关于将字符串形式的转换成整数,浮点数等;以及逆方向的方法;
- 将一个字符串转换成一个整数
- 实现一个函数int my_atoi(char s[]),可以将一个字符串转换为对应的整数。
- python 字符串和整数的转换方法
- 字符串参数必须包含一个或者多个数字,函数应该把这些数字字符转换为整数并返回这个整数。如果字符串参数包含了任何非数字字符,函数就返回零
- 输入一个整数,使用递归方法实现反向输出
- 写一个方法,将一个字符串(1234567890)转换成(1,234,567,890)每三个一组用逗号隔开()
- 对一个整数进行倒序输出(和字符串倒序输出方法一样)
- 一个字符串中的数值转换为 Interger 的三种方法
- 将一个字符串转换为整数
- 面试题整理 1:将一个字符串转换为整数
- Javascript里,想把一个整数转换成字符串,字符串长度为2
- 将一个字符串转换为对应的整数