题目连接:http://ybt.ssoier.cn:8088/problem_show.php?pid=1404
第一次看题太简单,2分钟写如下代码
1 #include<iostream> 2 using namespace std; 3 int main() 4 { 5 long n,x,w; 6 cin>>n; 7 for(int x=1;x<100000;x++) 8 for(int w=1;w<100000;w++) 9 { 10 if((x*x+x-6*w)==2*n) 11 { 12 cout<<w<<" "<<x<<endl; 13 return 0; 14 } 15 } 16 17 return 0; 18 }
哦奥,结果悲剧了,不好意思老司机也有翻车的时候:
第二天又该代码如下:
1 #include<cstdio> 2 #include<iostream> 3 using namespace std; 4 int main() 5 { 6 int s,n,i; 7 cin>>n; 8 for(i=1;;i++) 9 { 10 s=i*(i+1)/2; 11 s-=n; 12 if(s%3==0&&s>=0) break; 13 } 14 cout<<s/3<<" "<<i<<endl; 15 return 0; 16 }
总结:当题看起来越简单,越要慎重,特别是要分析一下复杂度内存占用等。江湖险恶,谨慎第一。。。