十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
#include stdio.h
成都创新互联从2013年创立,是专业互联网技术服务公司,拥有项目成都网站制作、成都网站设计网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元尼勒克做网站,已为上家服务,为尼勒克各地企业和个人服务,联系电话:18982081108
int main()
{
int a, t;
scanf ("%d", a);
t = 0;
while (a){
t= t*10+a%10;
a/=10;
}
printf("%d\n", t);
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"
int itoc(int num, char *buffer)
{
int i=0;
if(num0)
{
*buffer='-';
num=0-num;
itoc(num,buffer+1);
}
else if(num=10)
{
i=itoc(num/10,buffer);
*(buffer+i)=(num%10)+'0';
*(buffer+i+1)=0;
}
else
{
*buffer=num+'0';
*(buffer+1)=0;
}
return i+1;
}
void main()
{
char str[20];
itoc(0,str);
printf("%s\n",str);
itoc(17858,str);
printf("%s\n",str);
itoc(-12345,str);
printf("%s\n",str);
}
#includestdio.h
int n=-1
void copy(int i,char x[])
{
if(i10)
x[i]=i+48;
else
{
n++;
copy(i/10,x);
n--;
}
}
递归函数:
编程语言中,函数Func(Type a,……)直接或间接调用函数本身,则该函数称为递归函数。递归函数不能定义为内联函数。
在数学上,关于递归函数的定义如下:对于某一函数f(x),其定义域是集合A,那么若对于A集合中的某一个值X0,其函数值f(x0)由f(f(x0))决定,那么就称f(x)为递归函数。
函数介绍:
在数理逻辑和计算机科学中,递归函数或μ-递归函数是一类从自然数到自然数的函数,它是在某种直觉意义上是"可计算的" 。事实上,在可计算性理论中证明了递归函数精确的是图灵机的可计算函数。递归函数有关于原始递归函数,并且它们的归纳定义(见下)建造在原始递归函数之上。但是,不是所有递归函数都是原始递归函数 — 最著名的这种函数是阿克曼函数。
其他等价的函数类是λ-递归函数和马尔可夫算法可计算的函数。
例子:
//代码1
void func()
{
//...
if(...)
func();
else
//...
}
条件:
一个含直接或间接调用本函数语句的函数被称之为递归函数,在上面的例子中能够看出,它必须满足以下两个条件:
1) 在每一次调用自己时,必须是(在某种意义上)更接近于解;
2) 必须有一个终止处理或计算的准则。
梵塔的递归函数:
//C
void hanoi(int n,char x,char y,char z)
{
if(n==1)
move(x,1,z);
else
{
hanoi(n-1,x,z,y);
move(x,n,z);
hanoi(n-1,y,x,z);
}
}