dasd21a 2020-02-15 12:47 采纳率: 100%
浏览 814

C语言 VS2019 我自己写的代码无法通过PTA题目5-6 但博主答案编译有明显错误但是为什么通过了

先贴出题目

图片说明

计算水仙花数

int narcissistic( int number );
void PrintN( int m, int n );

#include <stdio.h>

int narcissistic( int number );
void PrintN( int m, int n );

int main()
{
    int m, n;

    scanf("%d %d", &m, &n);
    if ( narcissistic(m) ) printf("%d is a narcissistic number\n", m);
    PrintN(m, n);
    if ( narcissistic(n) ) printf("%d is a narcissistic number\n", n);

    return 0;
}

/* 你的代码将被嵌在这里 */

下面是我的答案 由于题目里面没有包含MATH.H函数
所以我自己写了一个输出指数的函数;我的代码在VS2019上面调试模式找了很久都不知道为什么不能通过测试

int narcissistic(int number)
{
    int a = number;
    int b = number;
    int leng = 0;
    int sum = 0;


    for (; a > 0; a /= 10)leng++;//整数的位数
    a = number;

    for (int c = 0; c < leng; c++) //判断水仙花数
    {
        b = a % zhishu(10, c);
        sum = sum + zhishu(b, leng);

        a /= 10;
    }

    if (sum == number)return 1;
    return 0;



}




void PrintN(int m, int n)
{
    for (int a = m + 1; a < n; a++)
    {
        if (narcissistic(a))printf("%d\n", a);
    }
}




int zhishu(int num, int times)///输出指数
{
    int a = 0;
    int b = num;

    for (; a < times - 1; a++)
    {
        b = b * num;
    }

    return b;
}

但是我找到的网上的答案却可以通过测试 下面是网上的代码
他使用了POW函数 但是返回了一个不正确的的值 却通过了测试


int narcissistic(int number) {
    int i, n = 0, sum = 0, cnt = 0;
    n = number;
    while (n) {
        cnt++;
        n /= 10;
    }

    n = number;
    while (n) {
        i = n % 10;
        sum += (int)pow(i, cnt);
        n /= 10;
    }

    if (sum == number)
        return 1;
    else
        return 0;

}

void PrintN(int m, int n) {

    int i;

    for (i = m + 1; i < n; i++)
        if (narcissistic(i))
            printf("%d\n", i);
}

图片说明

可以看到他的SUM函数明显数值不对 但是为什么能通过测试呢

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥60 版本过低apk如何修改可以兼容新的安卓系统
    • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
    • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
    • ¥50 有数据,怎么用matlab求全要素生产率
    • ¥15 TI的insta-spin例程
    • ¥15 完成下列问题完成下列问题
    • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
    • ¥15 YoloV5 第三方库的版本对照问题
    • ¥15 请完成下列相关问题!
    • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?