问题链接: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; }
时间: 2024-10-07 18:32:29