zoukankan      html  css  js  c++  java
  • zzuli 1815: easy problem 打表

    1815: easy problem

    Time Limit: 1 Sec  Memory Limit: 128 MB
    Submit: 243  Solved: 108

    SubmitStatusWeb Board

    Description

    给你一个数字N,N的范围是1~1000000,求一个最小的正整数M,这个数字M的各个位的数字加上它本身之和恰好为N。当然,如果没有解,输出0。

    Input

    输入数据由多组数据组成,每行由一个数字N组成(1<=N<=1000000)。

    Output

    对于每组数据,输出仅一行包含一个整数M。如果对于每个N,存在最小的M,则输出这个最小值。如果不存在这个最小的M,则输出0。

    Sample Input

    216
    121
    2005

    Sample Output

    198
    0
    1979
    代码:
    #include<iostream>
    #include<algorithm>
    #include<string>
    #include<vector>
    #include<map>
    #include<queue>
    #include<cstdlib>
    #include<cstring>
    #include<cstdio>
    #include<cmath>
    using namespace std;
    const int maxn=1000001;
    int ans[maxn];
    void init() {
        ans[0]=0;ans[1]=1;
        for(int i=2;i<maxn;++i) {
            int temp=i;
            if(temp%10!=0)
                ans[i]=ans[i-1]+1;
            else {
                ans[i]=ans[i-1];
                while(temp%10==0){
                    ans[i]-=9;
                    temp/=10;
                }
                ans[i]+=1;
            }
        }
    }
    int main() {
        init();
        int n;
        while(~scanf("%d",&n)) {
            int num=0;
            for(int i=n/2;i<n;++i) {
                if((ans[i]+i)==n) {
                    num=i;
                    break;
                }
            }
            printf("%d
    ",num);
        }
        return 0;
    }
    


  • 相关阅读:
    二叉排序树和平衡二叉树
    博客首页特效整理2
    博客首页特效整理
    19-20下学期思维导图
    19-20下学期第一次作业问卷调查回答
    c++实现五子棋游戏
    c++实现扫雷游戏
    c++实现2048游戏
    c++实现推箱子游戏
    C++实现贪吃蛇小游戏
  • 原文地址:https://www.cnblogs.com/lemonbiscuit/p/7775986.html
Copyright © 2011-2022 走看看