水户洋平_ @ 2020-08-23 10:10:35
为什么全是TLE啊,我逻辑有问题吗还是...蒟蒻无地自容
#include<iostream>
using namespace std;
int main()
{
long long n,ans=0,b=0;
cin>>n;
for(int i=1;;i++){
for(int y=1;y<=i;y++){
ans+=i;
b++;
if(b>=n){
break;
}
}
}
cout<<ans<<endl;
return 0;
}
by 水户洋平_ @ 2020-08-23 10:11:29
坐等大佬指点迷津
by Eon_Sky @ 2020-08-23 10:12:19
超时跟逻辑有啥关系,大部分时候是方法问题
by Eon_Sky @ 2020-08-23 10:13:03
不过确实逻辑错了/youl
by Steven__Chen @ 2020-08-23 10:13:22
你死循环了啊
by Eon_Sky @ 2020-08-23 10:13:30
明明一层循环就够了
by Davi_zhao @ 2020-08-23 10:14:11
@水户洋平_ 没太看懂代码 但是你的这个break只是跳出了y这个循环吧,外循环不还是无限吗
by HFAKzzy @ 2020-08-23 10:14:38
by brady_liu @ 2020-08-23 10:15:43
死循环了。
话说你不运行一下程序再交吗
by 水户洋平_ @ 2020-08-23 10:23:06
@键盘真香 emm 疏忽了,但是我把打印和return 0放到break位置就好了,两层循环可以用
by 水户洋平_ @ 2020-08-23 10:26:59
纠正了
#include<iostream>
using namespace std;
int main()
{
int n,a=0,b=0;
cin>>n;
for(int i=1;;i++){
for(int y=1;y<=i;y++){
a+=i;
b++;
if(b>=n){
cout<<a<<endl;
return 0;
}
}
}
}