常见面试题——递归

本文探讨了递归的概念,并通过两个实例进行说明:一是将整数654321递归输出其各个数字;二是实现分解质因数,以12为例,分解为2*2*3。这些递归技巧常见于编程面试中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、递归将一个整数输出:如654321,输出1,2,3,4,5,6,代码实现如下:

void Reverse(int* pResult,int iOrigin)
{
    if(iOrigin/10==0)
    {
        pResult[0]=iOrigin%10 ;
        return ;
    }else
    {
        pResult[0]=iOrigin%10 ;
        Reverse(pResult+1,iOrigin/10) ;
    }
}
int main()
{
    int a=654321;
    int b[10] ;
    Reverse(b,a) ;
    for(int i=0;i<6;i++)
    {
        cout<<b[i]<<',' ;
    }
    cout<<endl ;
}
2、用递归算法实现回文检测,如abcdefggfedcba,
int JudgeBack(char *pStr,int len)
{
    if(len<=1)
    {
        return 1 ;
    }else
    if(pStr[0]==pStr[len-1])
    {
        return JudgeBack(pStr+1,len-2) ;
    }else
    {
        return 0 ;
    }
}
int main()
{
    char *pTmp="abcdefggfedcba" ;
    if(JudgeBack(pTmp,strlen(pTmp)))
    {
        cout<<"YES!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值