#10023: 請問為什麼這樣測資1會TLE?


EErielin (花米)

學校 : 國立交通大學
編號 : 42224
來源 : [140.112.48.64]
最後登入時間 :
2017-11-30 19:31:03

#include <stdio.h>
#include <stdlib.h>

long long int powint(long long int a, long long int n)
{
    int i;
    long long int sum = 1;
    if (n == 0)
        return sum;
    for (i = 0; i < n; ++i)
        sum *= a;
    return sum;
}

int main()
{
    long long int a, n;
    while (scanf("%lld %lld", &a, &n) != EOF) {
        if (a == -1)
            if (n % 2)
                printf("-1\n");
            else
                printf("1\n");
        else
            printf("%lld\n", powint(a, n));
    }
    return 0;
}

#10024: Re:請問為什麼這樣測資1會TLE?


liouzhou_101 (王启圣)

學校 : 广西柳州高级中学
編號 : 3714
來源 : [126.108.190.144]
最後登入時間 :
2023-07-21 17:40:51

#include
#include

long long int powint(long long int a, long long int n)
{
    int i;
    long long int sum = 1;
    if (n == 0)
        return sum;
    for (i = 0; i < n; ++i)
        sum *= a;
    return sum;
}

int main()
{
    long long int a, n;
    while (scanf("%lld %lld", &a, &n) != EOF) {
        if (a == -1)
            if (n % 2)
                printf("-1\n");
            else
                printf("1\n");
        else
            printf("%lld\n", powint(a, n));
    }
    return 0;
}


a=1然后n很大呢,你怎么办?