UVA10018 Reverse and Add

问题链接:UVA10018 Reverse and Add基础训练题,用C语言编写程序。

题意:输入测试用例数n,然后输入n个正整数,加上其逆序的整数,如果和不是回文数则对和求逆序整数与和相加,直到变为回文整数为止,最少做一次加法,最后输出加法次数和回文数。

程序中,计算逆序整数的功能,封装到函数reverse(),主程序逻辑变得简单。

使用函数封装功能,使得程序功能逻辑局部化,程序更加简洁易懂。

AC的C语言程序如下:

/* UVA10018 Reverse and Add */

#include <stdio.h>

unsigned int reverse(unsigned int n)
{
    int rev = 0;

    while(n){
        rev = rev * 10 + n % 10;
        n /= 10;
    }

    return rev;
}

int main(void)
{
    int n, count;
    unsigned p, rev;

    scanf("%d", &n);
    while(n--) {
        scanf("%d", &p);

        rev = reverse(p);
        p += rev;
        count = 1;
        rev = reverse(p);
        while(p != rev) {
            p += rev;
            count++;
            rev = reverse(p);
        }

        printf("%d %u\n", count, p);
    }

    return 0;
}


转载于:https://www.cnblogs.com/tigerisland/p/7564536.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值