才学c语言不会写,求帮写

帮忙写一下,就是输入一个数然后输出通过这个算法得到的回文数,最好用到自定义函数,用c语言写

img

自定义回文数判断函数,然后反复叠加判断

运行结果:

img

代码:


#include <stdio.h>

//逆序
int reverse(int n)
{
    int s = 0;
    while (n != 0)
    {
        s = s * 10 + n % 10;
        n /= 10;
    }
    return s;
}

//判断回文
int huiwen(int n)
{
    int r = reverse(n);
    if (r == n)
        return 1;
    else
        return 0;
}



int main()
{
    int n;
    int r, sum;
    scanf("%d", &n);
    while (1)
    {
        r = reverse(n);
        sum = n + r;
        printf("%d+%d=%d\n", n, r, sum);
        if (huiwen(sum))
            break;
        else
        {
            n = sum;
        }
    }
    return 0;
}

用递归函数比较简洁
另外题目应该限定这个整数的取值范围

#include <stdio.h>
long long rev(long long n)
{
    long long m = 0;
    while(n!=0)
    {
        m = m*10 + n%10;
        n/=10;
    }
    return m;
}

void hw(long long n)
{
    long long m =rev(n);
    if(m==n)
    {
        return;
    }
    printf("%lld+%d=%lld\n",m,n,m+n);
    hw(m+n);
}

int main()
{
    long long n;
    scanf("%lld",&n);
    hw(n);
    return 0;
}

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632