为什么 int 不能 AC 但是 double 可以?

P1720 月落乌啼算钱(斐波那契数列)

dqh_0616 @ 2024-11-30 09:48:57

Unaccept(80 pts):

#include<stdio.h>
int main(){
    int f[50];
    int n,i;
    f[0]=0;f[1]=1;f[2]=1;
    scanf("%d",&n);
    for(i=3;i<=n;i++)
        f[i]=f[i-1]+f[i-2];
    printf("%d.00",f[n]);
    return 0;
}

AC:

#include<stdio.h>
int main(){
    double f[50];
    int n;
    f[0]=0;f[1]=1;f[2]=1;
    scanf("%d",&n);
    for(int i=3;i<=n;i++)
        f[i]=f[i-1]+f[i-2];
    printf("%.2lf",f[n]);
    return 0;
}

by CarrotMeow @ 2024-11-30 09:52:12

@dqh_0616 换成 long long?


by foshib3 @ 2024-11-30 09:56:42

long long 不行。


by easy42 @ 2024-11-30 10:01:56

@dqh_0616 无耻的求关。

#include<stdio.h>
int main(){
    long long  f[50];
    long long n,i;
    f[0]=0;f[1]=1;f[2]=1;
    scanf("%lld",&n);
    for(i=3;i<=n;i++)
        f[i]=f[i-1]+f[i-2];
    printf("%lld",f[n]);
    printf(".00");
    return 0;
}

by STRLEN_SUIYUHAN @ 2024-11-30 10:14:25

@dqh_0616

可能是因为他要输出小数的缘故吧。


|