美文网首页
PAT B1091 N-自守数

PAT B1091 N-自守数

作者: LinkLiKang | 来源:发表于2021-04-22 08:02 被阅读0次

    之所以提到这道题,不是因为这道题难。是因为在做这道题的时候,犯了一个低级的错误。
    注意,题中给出的“No”,“o”是小写,我写的时候,写成了大写“O”。反复确认了我写的代码没有逻辑错误,仔细对照题目才发现这个问题。

    #include <cstdio>
    #include <cstring>
    #include <string>
    using namespace std;
    const int maxn = 101;
    int a[maxn] = {0};
    bool compare(int a, int b){//a的后几位是否与b相等
        while (true) {
            if(a % 10 != b % 10){
                return false;
            }else{
                a = a / 10;
                b = b / 10;
                if(a == 0 || b == 0){
                    break;
                }
            }
        }
        return true;
    }
    int main(){
        int M, num;
        scanf("%d", &M);
        for (int i = 0; i < M; i++) {
            scanf("%d", &num);
            a[i] = num;
        }
        for(int i = 0; i < M; i++){
            int result;
            int j;
            for(j = 1; j < 10; j++){
                result = a[i] * a[i] * j;
                if(compare(result, a[i])){
                    printf("%d %d\n", j, result);
                    break;
                }
            }
            if(j >= 10){
                printf("NO\n");
            }
        }
        return 0;
    }
    

    相关文章

      网友评论

          本文标题:PAT B1091 N-自守数

          本文链接:https://www.haomeiwen.com/subject/skcxrltx.html