扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
int reverse(int n)
目前创新互联已为1000多家的企业提供了网站建设、域名、网站空间、网站托管、企业网站设计、元氏网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
{
int r=0;
while(n!=0)
{
r*=10;
r+=(n%10);
n/=10;
}
return r;
}
用静态变量实现
#include stdio.h
long inverse(long x)
{
static long s=1;
long t;
if(x==0) return 0;
t = revers(x/10);
t+=x%10 *s;
s*=10;
return t;
}
int main()
{
long n;
scanf("%ld",n);
printf("%ld\n", revers(n));
return 0;
}
//由于整数的位数是不确定的,可以很长,所以不能用int类型
//为了能表示长整数,我们采用字符串来表示
//一下的代码是用c++写的,和c区别不大
#includeiostream
#includecstring
using namespace std;
void revstr1(char *str){
int length=strlen(str);
if(length0){
char c=*(str+length-1);
*(str+length-1)='\0';
coutrevstr1(str);
coutc;
}
}
void revstr2(char *str){
char *p;
int length=strlen(str);
//从后面将整数反序输出
for(p=str+length-1; p=str,p--)
cout*p;
//补上换行符
coutendl;
}
void main(){
//整数最大长度100,可以调节
char str[101];
cin.getline(str,100);
//递归输出
revstr1(str);
//补上换行符
coutendl;
//非递归输出
revstr2(str);
return 0;
}
#include stdio.h
void prt(int n)
{
printf("%d ",n%10);
if(n10)
prt(n/10);
}
int main(void)
{
int a;
printf("请输入整数:");
scanf("%d",a);
prt(a);
return 0;
}
//////////////////////////////////////////
不好意思没看清
#include stdio.h
int prt(int n,int s)
{
s=10*s+n%10;
if(n10)
prt(n/10,s);
else
return s;
}
int main(void)
{
int a,b;
printf("请输入整数:");
scanf("%d",a);
b=prt(a,0);
printf("%d",b);
return 0;
}
#include "stdio.h"
void intrev(int n){
if(n){
printf("%d",n%10);
intrev(n/10);
}
}
int main(int argc,char *argv[]){
int x;
printf("Please enter a positive integer...\n");
if(scanf("%d",x)!=1 || x1){
printf("Input error, exit...\n");
return 0;
}
intrev(x);
printf("\n");
return 0;
}
运行样例:
1.
算法:递归函数传入正整数,先输出最末尾数字,再除以10用递归函数继续迭代,直到该正整数为0时终止递归。
2.
例程:
#includestdio.h
void rev(int n){
if(n 0) { //判断该数是否大于0
printf("%d", n%10); //输出末位数值
rev(n/10); //递归迭代整除10后的剩余值
}
}
int main(){
rev(1234); //样例输入1234
return 0;
}//样例输出 4321
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流