#include<iostream>
#include<algorithm>
#include<math.h>;
using namespace std;
int main()
{
long long i,n,count=0;
cin>>n;
for(i=1;i<n;i++)
{
if(i*(n-i)%3==0)
count++;
}
cout<<count<<endl;
return 0;
}
看着总是那么简单,就是不能通过。运行总是超时,得分也就得了三分之一,我emo了,why?
输入的n的值是一个比较大的数据类型,如果要全部运行一遍,必定不过。因此要另谋它法。经过借鉴其它大佬写的代码,看着都无比的相似,大家都无疑找到了某种规律,而我没有。代码如下。
#include <iostream>
using namespace std;
int main(){
long long n;
cin>>n;
if(n%3)cout<<n/3*2;
else cout<<n/3-1;
return 0;
}
总结:看题不要只是盲目的跟着题目的线索走,而是要积极运用线索,找到其中暗藏的规律,从而达到求解的目的。找规律