c40求助

P2669 [NOIP2015 普及组] 金币

pxxSakure @ 2023-02-17 21:14:01

#include<stdio.h>
int main(){
    unsigned long long k,i,j,t=0;
    scanf("%llu",&k);
    for(i=1;i*(i+1)/2<=k;i++){
        for(j=1;j<=i;j++){
        t+=i;}
    }
    printf("%llu",t);
    return 0;
}

by tmts4uope @ 2023-02-24 16:28:00

#include<stdio.h>
int main(){
    unsigned long long k,i,j,t=0;
    scanf("%llu",&k);
    for(i=1;i*(i+1)/2<=k;i++){
        t+=i*i;//此处你写的复杂了,给你简化了。
    }//你的条件判断的最终结果是t只加上了完整的周期的金币,漏掉了超出一个周期的金币。
    i--;
    t+=(k-i*(i+1)/2)*(i+1);//补上下一个周期的金币。
    printf("%llu",t);
    return 0;
}

|