将一个整数逆序输出,分别给出递归和非递归算法
2012-11-06 16:42
501 查看
整数的逆序输出,递归算法:
非递归算法,很搓~~
#include "stdafx.h" #include<iostream> using namespace std; void reverse (int x){ int t_reserved = x; //临时保存x的值,因为x的值还要递归中使用 if (x==0) return; //如果是0,则程序结束 else if (x>0&&x<10) cout<<x; //如果是个位数,则输出结果 else cout<<x-(x/10)*10; //如果是多位数,则输出最后的一位 reverse(t_reserved/10); //递归运算 } int main() { int a; cout<<"请输入一个整数:"<<endl; cin>>a; reverse(a); return 0; }
非递归算法,很搓~~
#include <iostream> using namespace std; int weiShu(const int n) //求出数的位数 { int base=1; for(int i=1;;i++) { if(n>=base&&n<=base*10) return i; base*=10; } } void reverse(int n,int a[]) //逆制,并将其存入数组 { int acount=1; int num=weiShu(n); for(int i=1;i<num;i++) acount*=10; // cout<<acount<<endl; for(int j=0;j<num;j++) { if(n<10) //如果是个位数,直接赋值,结束 { a[j]=n; return; } a[j]=n/acount; n=n-a[j]*acount; acount/=10; } } int main() { int inPut; //想要输入的数 int temp[100]={0}; //临时数组,存入要存的数 cout<<"please input a number: "<<endl; cin>>inPut; int num=weiShu(inPut); cout<<num<<endl; reverse(inPut,temp); for(int i=num-1;i>=0;i--) cout<<temp[i]; cout<<endl; return 0; }
相关文章推荐
- (c++)给出一个不多于5位的整数,要求 1、求出它是几位数 2、分别输出每一位数字 3、按逆序输出各位数字,例如原数为321,应输出123
- 给出一个不多于5位的整数,要求 1、求出它是几位数 2、分别输出每一位数字 3、按逆序输出各位数字,例如原数为321,应输出123
- 给出一个不多于5位的整数,要求 1、求出它是几位数 2、分别输出每一位数字 3、按逆序输出各位数字,例如原数为321,应输出123
- 给出一个不多于5位的整数,要求 1、求出它是几位数 2、分别输出每一位数字 3、按逆序输出各位数字,例如原数为321,应输出123
- 给出一个不多于5位的正整数,(1) 求出它是几位数(2) 分别打印出每一位数字(3) 按逆序打印出各位数字,例如原数为321,应输出123
- 给出一个不多于5位的整数,要求 1、求出它是几位数 2、分别输出每一位数字 3、按逆序输出各位数字,例如原数为321,应输出123
- 给定一个整数判断位数并实现分别输出每位,逆序输出。
- 给一个不多于五位的正整数,要求: (1)求出他是几位数 (2)分别输出每位数字 (3)按逆序输出各位数字
- java 用递归实现:输入一个整数,用字符串逆序输出,例如输入123,输出321 ,不使用全局变量
- 给一个不多于5位的正整数,要求:1、求出它是几位数;2、分别打印出每一位数字; 3、按逆序打印出各位数字,例如原数为321,应输出123。
- 习题 4.9 给一个不多于5位的正整数,要求:1. 求出它是几位数;2. 分别输出每一位数字;3. 按逆序输出各位数字,例如原数为321,应输出123。
- 给一个不多于5位的正整数,要求:①求出它是几位数;②分别输出每一位数;③按逆序输出各位数字
- 给一个不多于5位的整数,要求(1)求出他是几位数(2)分别输出每一位数字(3)按逆序输出各位数字,例如原数为321,应输出123
- 【c语言】给一个不多于5位的正整数,要求: 1、求出它是几位数 2、分别输出每一位数字 3、按逆序输出各位数字
- 输入一个不多于5位的正整数。1、求出它是几位数;2、分别输出每一位数字;3、按逆序输出各位数字。
- 给一个不多于6位的正整数,要求:①求出它是几位数;②分别输出每一位数字;③按逆序输出
- 给出一个不多于五位的正整数,要求输出它的位数,每一位数字及逆序
- 小程序:逆序输出一个整数
- 第三周C#技术支持训练(二)自定义一个整数,输出该数分别于1-10相乘的结果
- 编写程序,输入一位三位整数,把三个数字逆序组成一个新数,再输出