zoukankan      html  css  js  c++  java
  • UVa 1583

    题意

    如果一个数字可以等于另一个数字加上它各位的数, 则输出该数字
    否则输出0

    思路

    水题
    暴力枚举
    但要缩小枚举范围, 否则必然超时
    随意举几个例子就能缩小枚举范围

    AC代码

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    
    using namespace std;
    
    char str[10];
    
    int main()
    {
        int T, n, i, j, len, sum;
        int dx;
        scanf("%d",&T);
        while(T--){
            bool flag = true;
            scanf("%d",&n);
            sprintf(str,"%d",n);
            len = strlen(str);
            switch(len){
        case 6 :
        case 5 :
            dx = 100; break;
        case 4 :
        case 3 :
            dx = 50; break;
        default:
            dx = 20; break;
            }
            //printf("%d--%d
    ",n-dx,n);
            for( i = n-dx; i < n; i++ ){
                sum = i;
                sprintf(str,"%d",i);
                len = strlen(str);
                for( j = 0; j < len; j++ )
                    sum += str[j]-'0';
                if( sum == n ){
                    printf("%d
    ",i);
                    flag = false;
                    break;
                }
            }
            if(flag) printf("0
    ");
        }
        return 0;
    }
  • 相关阅读:
    repr() Vs str()
    默认参数
    元组
    字典
    电脑可以办的两类最基本的事情
    代码块
    变量名
    print的逻辑
    input的逻辑
    让python2听懂中文
  • 原文地址:https://www.cnblogs.com/JinxiSui/p/9740630.html
Copyright © 2011-2022 走看看