用C语言递归实现幂函数,并在主函数中调用
/*x^n的值应小于32767,否则输出为负数。这是因为int类型的取值范围有限,正常的pow函数通常使用float或double型,并且参数也应该是float或double型。*/
#include
int power(int x,int n)
{
if (n>1)
{
return x*power(x,n-1);
}
else
{
if (n>0)
return x;
else
return 1;
}
}
void main()
{
int x,n;
printf("input x,n:");
scanf("%d%d",&x,&n);
printf("%d",power(x,n));
getch();
clrscr();
}
C语言关于函数的递归
你的递归程序是错的,我转来个对的,带讲解的,你看看。
语言函数的递归和调用
一、基本内容:
C语言中的函数可以递归调用,即:可以直接(简单递归)或间接(间接递归)地自己调自己。
要点:
1、C语言函数可以递归调用。
2、可以通过直接或间接两种方式调用。目前只讨论直接递归调用。
二、递归条件
采用递归方法来解决问题,必须符合以下三个条件:
1、可以把要解决的问题转化为一个新问题,而这个新的问题的解决方法仍与原来的解决方法相同,只是所处理的对象有规律地递增或递减。
说明:解决问题的方法相同,调用函数的参数每次不同(有规律的递增或递减),如果没有规律也就不能适用递归调用。
2、可以应用这个转化过程使问题得到解决。
说明:使用其他的办法比较麻烦或很难解决,而使用递归的方法可以很好地解决问题。
3、必定要有一个明确的结束递归的条件。
说明:一定要能够在适当的地方结束递归调用。不然可能导致系统崩溃。
三、递归实例
例:使用递归的方法n!
当n>1时,n!的问题可以转化为n*(n-1)!的新问题。
比如n=5:
第一部分:5*4*3*2*1 n*(n-1)!
第二部分:4*3*2*1 (n-1)*(n-2)!
第三部分:3*2*1 (n-2)(n-3)!
第四部分:2*1 (n-3)(n-4)!
第五部分:1 (n-5)! 5-5=0,得到值1,结束递归。
源程序:
fac(int n)
{int t;
if(n==1)||(n==0) return 1;
else
{ t=n*fac(n-1);
return t;
}
}
main( )
{int m,y;
printf(“Enter m:”);
scanf(“%d”,&m);
if(m
else
{y=fac(m);
printf(“n%d! =%d n”,m,y);
}
}
四、递归说明
1、当函数自己调用自己时,系统将自动把函数中当前的变量和形参暂时保留起来,在新一轮的调用过程中,系统为新调用的函数所用到的变量和形参开辟另外的存储单元(内存空间)。每次调用函数所使用的变量在不同的内存空间。
2、递归调用的层次越多,同名变量的占用的存储单元也就越多。一定要记住,每次函数的调用,系统都会为该函数的变量开辟新的内存空间。
3、当本次调用的函数运行结束时,系统将释放本次调用时所占用的内存空间。程序的流程返回到上一层的调用点,同时取得当初进入该层时,函数中的变量和形参所占用的内存空间的数据。
4、所有递归问题都可以用非递归的方法来解决,但对于一些比较复杂的递归问题用非递归的方法往往使程序变得十分复杂难以读懂,而函数的递归调用在解决这类问题时能使程序简洁明了有较好的可读性;但由于递归调用过程中,系统要为每一层调用中的变量开辟内存空间、要记住每一层调用后的返回点、要增加许多额外的开销,因此函数的递归调用通常会降低程序的运行效率。
五、程序流程
fac(int n) /*每次调用使用不同的参数*/
{ int t; /*每次调用都会为变量t开辟不同的内存空间*/
if(n==1)||(n==0) /*当满足这些条件返回1 */
return 1;
else
{ t=n*fac(n-1); /*每次程序运行到此处就会用n-1作为参数再调用一次本函数,此处是调用点*/
return t; /*只有在上一句调用的所有过程全部结束时才运行到此处。*/
}
}
以上是用C语言递归实现幂函数,并在主函数中调用的详细内容。更多信息请关注PHP中文网其他相关文章!

如果您想在不支持的国家,地区或地区通过VPN使用Chatgpt,您知道哪个是ChatGpt最好的VPN?在这篇文章中,PHP.CN软件将为您提供一些不错的选择。您可以根据要求的人选择一个

如何修复Windows 11/10上的“ XboxPcappft.exe不良图像”问题?来自PHP.CN的这篇文章提出了解决烦人问题的多种方法。请继续阅读。

当您想在OneDrive中删除文件或文件夹时该怎么办,但是发现无法删除OneDrive文件或文件夹?现在,您可以从php.cn读取此帖子,以获取修复“ OneDrive文件无法在Windows 1中删除的最佳解决方案”

启动设备时,错误消息“显示连接可能是有限的”是一个烦人的问题。在PHP.CN的这篇文章中,您可以获取有关导致此问题以及如何快速解决问题的详细信息。

Microsoft向Dev Channel中的内部人员释放了新的构建,它是Windows 11 Build 25115。与Beta通道发布的构建相比,这是一个更高的构建。您可以遵循此PHP.CN帖子以了解有关它的一些相关信息。

如何释放C驱动器上的空间,还是如何清除C驱动器上的浪费?这是PHP.CN关注的主题。如果您的C驱动器充满了旧应用程序和不必要的程序,则可以选择清理它。让我们开始。

Chatgpt已使用GPT-4更新。为了帮助您更好地理解此更新,我们将介绍Chatgpt 4和Chatgpt 3之间的差异。此外,如果要在Windows上恢复已删除的文件,则可以尝试PHP.CN电源数据恢复。

如果使用Windows 11 N或KN版本,如何下载和安装媒体功能包? 在这篇文章中,PHP.CN提供了有关获取Windows 11 Media功能包的分步指南。让我们查看一些细节。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

SublimeText3汉化版
中文版,非常好用

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具