#13994: 為何TLE求解


timmy940410 (遊艇)


 #include<stdio.h>
long long H(int);
int main(){
int n;
scanf("%d", &n);
while(n--){
int c;
scanf("%d", &ci);
c=H(c);
printf("%d\n", c);
}
return 0;
}
long long H(int n){
long long res = 0;
for(int i=1;i<=n;i=i+1){
res=(res+n/i);
}
return res;
}

#13995: Re:為何TLE求解


timmy940410 (遊艇)


 #include
long long H(int);
int main(){
int n;
scanf("%d", &n);
while(n--){
int c;
scanf("%d", &c);
c=H(c);
printf("%d\n", c);
}
return 0;
}
long long H(int n){
long long res = 0;
for(int i=1;i<=n;i=i+1){
res=(res+n/i);
}
return res;
}

打錯ci->c




#16064: Re:為何TLE求解


314159265358979323846264338327 ... (少年π)


 #include
long long H(int);
int main(){
int n;
scanf("%d", &n);
while(n--){
int c;
scanf("%d", &c);
c=H(c);
printf("%d\n", c);
}
return 0;
}
long long H(int n){
long long res = 0;
for(int i=1;i<=n;i=i+1){
res=(res+n/i);
}
return res;
}

打錯ci->c

這題絕對不能用他給的函數直接貼上去(1000*2147483647=TLE吃到死)

想想看有沒有能讓迴圈只跑sqrt(n)次的辦法

P.S.先想想這個函數的名字為什麼叫H(n)-->絕對不是亂取的

P.S.真的不會再去這個網站看看吧:https://www.geeksforgeeks.org/sum-series-n1-n2-n3-n4-nn/