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

UVA10018 Reverse and Add的相关文章

bzoj 2962 序列操作(线段树)

题外话 做这道题我整个人都非常的绝望,推了一会发现是线段树裸题,然后调了N久一直是WA 情况是这样的 开始WA的几百毫秒的都是由于我比较SB造成的,可是跑了10几秒的程序我查了N久也查不出错 最后灵机一动把50000改成60000就过了,也不知道为啥T_T Description 一个长度为n的序列,有3种操作 1:区间加c 2:区间取为相反数 3:询问区间中选择c个数相乘的所有方案的和mod19940417的值 Solution 这个操作3非常鬼畜,似乎没啥好的办法,但是仔细推导一番会发现这个

OpenCASCADE Make Primitives-Box

OpenCASCADE Make Primitives-Box [email protected] Abstract. By making a simple box to demonstrate the BRep data structure of the OpenCASCADE. The construction method is different from BRepPrimAPI_MakeBox. In the paper construct the box from vertex, e

SortedDictionary&lt;TKey,TValue&gt;正序与反序排序

SortedDictionary<TKey,TValue>能对字典排序 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace SortDictionary { class Program { static void Main(string[] args) { TestDictionarySort()

计划,,留

下面给出的题目共计560道,去掉重复的也有近500题,作为ACMer Training Step1,用1年到1年半年时间完成.打牢基础,厚积薄发. 一.UVaOJ http://uva.onlinejudge.org 西班牙Valladolid大学的程序在线评测系统,是历史最悠久.最著名的OJ. 一.<算法竞赛入门经典> 刘汝佳 (UVaOJ 351道题) 以下部分内容摘自:http://sdkdacm.5d6d.com/thread-6-1-1.html "AOAPC I"

BZOJ 3091 城市旅行 Link-Cut-Tree

警告:此题不可以使用cout进行输出,只能用printf,否则RE!亲测!! 题目大意:给定一棵树,每个点有一个点权,提供四种操作: 1.删除两点之间的连边 不存在边则无视 2.在两点之前连接一条边 两点已经联通则无视 3.在两点之间的路径上所有点的点权加上一个数 两点不连通则无视 4.询问两点之间路径上任选两点路径上的点权和的期望值 前三个操作都很基础 但是第四个东西--这啥玩应这是-- 首先这个期望值等于路径上所有无序点对路径上权值和的平均值 还是很抽象?没关系,拿样例说话 样例第一个询问

关于nginx做负载均衡时backend server取real ip

首先: 做为loadblance的nginx要添加下面的配置: proxy_set_header        Host $host; proxy_set_header        X-Real-IP $remote_addr; proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for; X-Real-IP和X-Forwarded-For可以2选1,也可以都打开: 更多,查看 http://blog.chinaunix

OpenCASCADE Make Primitives-Sphere

OpenCASCADE Make Primitives-Sphere [email protected] Abstract. The sphere is the simplest topology shape of the BRep structure. But there are several import concept of the sphere edges, such as degenerated edge and seam edge. So construct a sphere by

算法竞赛入门经典+挑战编程+USACO

下面给出的题目共计560道,去掉重复的也有近500题,作为ACMer Training Step1,用1年到1年半年时间完成.打牢基础,厚积薄发.   一.UVaOJ http://uva.onlinejudge.org  西班牙Valladolid大学的程序在线评测系统,是历史最悠久.最著名的OJ.   二.<算法竞赛入门经典> 刘汝佳  (UVaOJ  351道题)  以下部分内容摘自:http://sdkdacm.5d6d.com/thread-6-1-1.html   "AO

C# 谈Dictionary&lt;TKey,TValue&gt;,SortedDictionary&lt;TKey,TValue&gt;排序

使用过Dictionary的人都知道,当每一个Add里面的值都不会改变其顺序,所以需要需要对其排序的时候就用到SortedDictionary, 但SortedDictionary并不是那么理想,其默认的方式只支持正序排序,想要反序排序时必须得靠自己重新编写代码,下面来看一个简单的例子: private void TestDictionarySort() { SortedDictionary<string, string> sd = new SortedDictionary<string