• Uva 10624


    Problem B
    Super Number
    Input: Standard Input Output: Standard Output Time Limit: 3 Seconds

    主要是还是效率问题,一般暴力就直接怎么想就怎么解决就行了,但这题死活都是TEL,用了long long超时,用了char型替换整型不超时,如此还是不懂  -_- Mark一下~~

     

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    using namespace std;
    char digit[32];
    int n, m;
    
    bool digit_mod(int k){
        int sum = 0;
        for(int i=0; i<k; ++i){
            sum = (sum*10+digit[i])%k;
        }
        if(sum == 0) return true;
        return false;
    }
    
    bool Traverse(int cur){
        if(cur == m) return true;
        for(int i=0; i<=9; ++i){
            digit[cur] = i;
            if(cur<n-1 || digit_mod(cur+1)){
                if(Traverse(cur+1)) return true;
            }
        }
        return false;
    }
    
    int main(){
        int t, times = 0;
        cin>>t;
        while(t--){
            cin>>n>>m;
            memset(digit, 0, sizeof(digit));
            bool flag = false;
            for(int i=1; i<=9 && flag == false; ++i){
                digit[0] = i;
                flag = Traverse(1);
            }
            printf("Case %d: ", ++times);
            if(flag == false) printf("-1
    ");
            else{
                for(int i=0; i<m; ++i){
                    printf("%c", digit[i]+'0');
                }
                printf("
    ");
            }
        }
        return 0;
    }

                                                                                   

  • 相关阅读:
    全局数据库名称/数据库实例/SID 的区别
    【转载】ORACLE 10G DBCA创建脚本实现手动创建数据库
    apue 20130328
    apue 20130323
    visual c++6.0
    C语言
    apue 20130322
    apue 20130324
    apue 20130325
    C语言里的字符串解析
  • 原文地址:https://www.cnblogs.com/liaoguifa/p/3139205.html
Copyright © 2020-2023  润新知