递归解题

P1307 [NOIP2011 普及组] 数字反转

碎竹落棋 @ 2017-10-21 15:06:09

递归的方法,适合做逆序题。

#include<stdio.h>
void reverseprint(long long n,int cnt);
int main()
{
    long long n;
    int cnt=1;
    scanf("%lld",&n);
//    printf("%d",n);
    if(n<0)
    {
        printf("-");
        n=-n;
    }
    reverseprint(n,cnt);
    return 0;
}
void reverseprint(long long n,int cnt)
{
    int r;
    if(n<0)
    {
        n=-n;
    }
    r=n%10;
    if(r==0&&cnt==1)
    {
        cnt=0;
    }
    if(cnt)
    {
        printf("%d",r);
    }
    if(n>=10)
    {    
        cnt++;
        reverseprint(n/10,cnt);    
    }
}

|