zoukankan      html  css  js  c++  java
  • [刷题] PTA 完全数

    PTA

    7-45 找完数

    网友“云上明月”的程序:

     1 #include<stdio.h>
     2 int isPerfect(int num);
     3 
     4 int main() {
     5     int i,j,m,n,exist=0;
     6     int maxFactor;
     7     scanf("%d%d",&m,&n);
     8     for(i=m; i<=n; i++) {
     9         maxFactor = isPerfect(i);
    10         if(maxFactor) {
    11             exist = 1;
    12             printf("%d =",i);
    13             for(j=1; j<i; j++) {
    14                 if(i%j==0) {
    15                     printf(" %d",j);
    16                     if(j<maxFactor) printf(" +");
    17                     else printf("
    ");
    18                 }
    19             }
    20         }
    21     }
    22     if(!exist) printf("None");
    23     return 0;
    24 }
    25 
    26 int isPerfect(int num) {
    27     int i,factorSum=0,maxFactor=0,isPerfect=0;
    28     for(i=1; i<num; i++) {
    29         if(num%i==0) {
    30             factorSum += i;
    31             maxFactor = i;
    32         }
    33     }
    34     if(factorSum == num) {
    35         isPerfect=1;
    36     }
    37     return isPerfect*maxFactor;
    38 }

    我的部分程序:

    int isPerfect(int num){
        int i,sum=0,max=0;
        for(i=1;i<num;i++){
            if(num%i==0){
                sum+=i;    
                max=i;
            }
        }
        if(sum==num){
            return max;
        }
    }

    差距:

    1、变量命名简单,区分度不强

    2、没有定义标识是否完全数的变量,这样当要判断的数不是完全数时就不能返回0了

  • 相关阅读:
    CodeForces
    Codeforces 1523D Love-Hate(随机化算法,sos dp)
    CodeForces
    讲题泛做
    CF vp 新题乱做
    10.11 牛客
    10.6 牛客
    10.4 牛客
    10.9 模拟考试 题解报告
    9.18 校内模拟赛 题解报告
  • 原文地址:https://www.cnblogs.com/cxc1357/p/10755083.html
Copyright © 2011-2022 走看看