码迷,mamicode.com
首页 > 其他好文 > 详细

UVA 12050 - Palindrome Numbers 模拟

时间:2016-07-13 11:57:18      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:

技术分享

题目大意:给出i,输出第i个镜像数,不能有前导0.

题解:从外层开始模拟

#include <stdio.h>
int p(int x)
{
    int sum, i;
    for(sum=i=1;i<=x;i++)
        sum *= 10;
    return sum;
}
int main()
{
    int n, i, j, t, cs[1000], c;
    while(~scanf("%d", &n))
    {
        if(n==0)
            break;
        i=1;
        while(n>9*p((i-1)/2))
        {
            n -= 9*p((i-1)/2);
            i++;
        }
        c = (i+1)/2;
        t=1;
        while(c)
        {
        c--;
        cs[t]=0;
        while(n>p(c))
        {
            n -= p(c);
            cs[t]++;
        }
        t++;
        }
        cs[1]++;
        for(j=1;j<t;j++)
            printf("%d", cs[j]);
        if(i%2==0)
            printf("%d", cs[t-1]);
        for(j=t-2;j>=1;j--)
            printf("%d", cs[j]);
            printf("\n");
    }
    return 0;
}

 

UVA 12050 - Palindrome Numbers 模拟

标签:

原文地址:http://www.cnblogs.com/Noevon/p/5666279.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!