zoukankan      html  css  js  c++  java
  • hust 1062 Divisibility

    题目描述

    On the planet Zoop, numbers are represented in base 62, using the digits 0, 1, . . . , 9, A, B, . . . , Z, a, b, . . . , z where A (base 62) = 10 (base 10) B (base 62) = 11 (base 10) . . . z (base 62) = 61 (base 10). Given the digit representation of a number x in base 62, your goal is to determine if x is divisible by 61.

    输入

    The input test file will contain multiple cases. Each test case will be given by a single string containing only the digits ‘0’ through ‘9’, the uppercase letters ‘A’ through ‘Z’, and the lowercase letters ’a’ through ’z’. All strings will have a length of between 1 and 10000 characters, inclusive. The end-of-input is denoted by a single line containing the word “end”, which should not be processed.

    输出

    For each test case, print “yes” if the number is divisible by 61, and “no” otherwise.

    样例输入

    1v3
    2P6
    IsThisDivisible
    end
    

    样例输出

    yes
    no
    no
    

    提示In the first example, 1v3 = 1 × 622 + 57 × 62 + 3 = 7381, which is divisible by 61. In the second example, 2P6 = 2 × 622 + 25 × 62 + 6 = 9244, which is not divisible by 61.

    显然,提示是错误的,不过没关系,不影响我们做题

    #include<iostream>
    #include<cstring>
    #include<string>
    #include<cstdio>
    using namespace std;
    
    int get_num(char x)
    {
        if (x>='0' && x<='9') return x-'0';
        if (x>='A' && x<='Z') return x-'A'+10;
        if (x>='a' && x<='z') return x-'a'+36;
    }
    
    int main()
    {
        char str[10000+10];
        int ans,temp;
        while (scanf("%s",str)!=EOF && strcmp("end",str)!=0)
        {
            int L=strlen(str);
            ans=0;
            temp=1;
            for (int i=L-1;i>=0;i--)
            {
                ans+=(get_num(str[i])*temp)%61;
                ans=ans%61;
                temp=(temp*62)%61;
            }
            if (ans%61) printf("no
    ");
            else printf("yes
    ");
        }
        return 0;
    }

    作者 chensunrise

    至少做到我努力了
  • 相关阅读:
    51 Nod 1035 最长的循环节 (此题还不是很懂,日后再看)
    51 Nod 1101 换零钱(动态规划好题)
    51 Nod 1101 换零钱(动态规划好题)
    51 Nod 1163 最高的奖励
    51 Nod1042 数字0到9的数量
    51 Nod 1629 B君的圆锥
    iterrows(), iteritems(), itertuples()对dataframe进行遍历
    pandas计数 value_counts()
    scikit_learn逻辑回归类库
    Python中的深拷贝和浅拷贝
  • 原文地址:https://www.cnblogs.com/chensunrise/p/3759907.html
Copyright © 2011-2022 走看看