UVA 1583

    一道很简单的打表题,看起来像是数学题,还在那里想有没有公式,,,然后,看了分析,说打表,果断写了下,然后和书上的代码改了改就发出了。

其实在寻找或者查询某个值的时候,我们会经常使用这种打表的思想,这种思想给我们带来的应该会是一种较为容易理解和最为朴素的感觉,就像是我们小学查字典一样,

那么问题来了,表从哪里得到呢?所以,首先我们应该人为的自己打一张供我们所查询的表,然后通过我们的输入来找到我们所需要的解,这就是打表,,,,


针对这个题,我们只要一次枚举出100000内的所有正整数m,然后查表就可以了。


# include<cstdio>
# include<iostream>
# include<cstring>

using namespace std;

# define MAX 100000
int a[MAX+10];

int main(void)
{
    int T,n;
    memset(a,0,sizeof(a));

    for ( int i = 1;i < MAX+10;i++ )
    {
        int x = i;
        int y = i;
        while ( x>0 )
        {
            y+=x%10;
            x/=10;
        }
        if ( a[y]==0||i<a[y] )
            a[y] = i;
    }
    cin>>T;
    while ( T-- )
    {
        cin>>n;
        cout<<a[n]<<endl;
    }



    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值