请帮我看一下这两种代码有什么区别?

问题遇到的现象和发生背景

pta 上写题目 我写的版本和 网上找的答案,找不出哪里出了问题,我的版本通不过

问题相关代码,请勿粘贴截图

我写的版本

int narcissistic( int number ){
    int a,b,c;
    a=number/100%10;
    b=number/10%10;
    c=number%10;
    if (number/1000 == 0){
        if(a*a*a+b*b*b+c*c*c == number){
            return 1;
        } else {
            return 0;
        }
    } else {
        int d=number/1000%10;
        if(a*a*a+b*b*b+c*c*c+d*d*d == number){
            return 1;
        } else {
            return 0;
        }
    }
}
void PrintN( int m, int n ){
    for(int i=m+1;i<n;i++){
        if(narcissistic(i) == 1){
            printf("%d\n",i);
        }
    }
}

网上找的答案

在这里插入代码片
```int narcissistic( int number ){
    int i,j,k,r;
    i=number%10;
    j=number/10%10;
    k=number/100%10;
    if(number/1000==0)   //判断number是三位数 
        return number==i*i*i+j*j*j+k*k*k;
    else{
        r=number/1000%10; //判断number是四位数 
        return number==i*i*i*i+j*j*j*j+k*k*k*k+r*r*r*r;  //若相等则返回 1,否则返回 0; 
    }            
}
void PrintN(int m,int n){
    int i,t;
    if(m>n){   //m>n时此时要互换一下 
        t=m;
        m=n;
        n=t;
    }
    for(i=m+1;i<n;i++){
        if(narcissistic(i))    printf("%d\n",i);  
    }
}
运行结果及报错内容

我的版本:
输入: 153 153
输出:
153 is a narcissistic number
153 is a narcissistic number

我的解答思路和尝试过的方法

看了一下感觉好像和答案没什么区别,请各位指点一下,谢谢!

少了这个判断啊
if(m>n){ //m>n时此时要互换一下
t=m;
m=n;
n=t;
}

我看到两个地方不同,
一是 PritnN 函数网上那份将参数m和n处理了一下,确保m小于n;
二是narcissistic函数 else部分,网上那个是讲每个数位的值的4次方之和与原数相比,你的是每个数位的值的三次方之和与原数相比。