1583 - Digit Generator (UVA)

题目链接如下:

Online Judge

我的代码如下:

cpp 复制代码
#include <cstdio>

int T, N;
bool flag;

int cal(int k){
    int ans = k;
    while(k){
        ans += k % 10;
        k /= 10;
    }
    return ans;
}

int main(){
    scanf("%d", &T);
    for(int i = 0; i < T; ++i){
        scanf("%d", &N);
        flag = false;
        for(int j = N - 45; j < N; ++j){
            if(cal(j) == N){
                flag = true;
                printf("%d\n", j);
                break;
            }
        }
        if(!flag){
            printf("0\n");
        }
    }
    return 0;
}

按照刘汝佳方法写的代码如下:

cpp 复制代码
#include <cstdio>
const int maxN = 100005;

int T, N;
int gen[maxN];

int cal(int k){
    int ans = k;
    while(k){
        ans += k % 10;
        k /= 10;
    }
    return ans;
}

int main(){
    for(int i = 1; i < maxN; ++i){
        if(cal(i) < maxN && gen[cal(i)] == 0){
            gen[cal(i)] = i;
        }
    }
    scanf("%d", &T);
    for(int i = 0; i < T; ++i){
        scanf("%d", &N);
        printf("%d\n", gen[N]);
    }
    return 0;
}
相关推荐
菜鸟‍6 分钟前
【论文学习】Disco:基于邻接感知协同着色的密集重叠细胞实例分割方法
人工智能·学习·算法
牧天白衣.12 分钟前
力扣215.数组中的第K个最大元素
算法·leetcode
cxr82819 分钟前
控制理论基础
人工智能·算法
平平淡淡才是true32 分钟前
偏序关系、哈斯图、最长链长度、最长链条数
算法
小钊(求职中)36 分钟前
算法知识、常用方法总结
java·算法·排序算法·力扣
paeamecium41 分钟前
【PAT甲级真题】- Talent and Virtue (25)
数据结构·c++·算法·pat
Mr_Xuhhh1 小时前
蓝桥杯复习清单真题(C++版本)
c++·算法·蓝桥杯
tankeven1 小时前
HJ163 时津风的资源收集
c++·算法
Boop_wu1 小时前
[Java 算法] 动态规划(4)
数据结构·算法·leetcode
旖-旎1 小时前
分治(计算右侧小于当前元素的个数)(7)
c++·学习·算法·leetcode·排序算法·归并排序