
题意:给你一个n,问你1~n中取出3个数构成不同三角形的种类数,但是n<3时就弹出噢,刚开始就因为这个WA了。
题解:找规律,直接看表格。

#include<iostream>
using namespace std;
const int maxn=1e6+7;
long long f[maxn];
int main()
{
f[4]=1,f[5]=3;
long long k=2;
for(int i=6;i<maxn;i++)
{
if(i%2==0)
{
f[i]=f[i-1]+f[i-1]-f[i-2]+k;
}
else
{
f[i]=f[i-1]+f[i-1]-f[i-2]+k;
k++;
}
}
int n;
while(cin>>n)
{
if(n<3)//小于3就弹出
break;
cout<<f[n]<<endl;
}
return 0;
}

本文探讨了一种算法,用于计算在1到n范围内选取3个数形成不同三角形的种类数。通过观察规律并使用C++实现,该算法特别处理了n小于3的特殊情况。

736

被折叠的 条评论
为什么被折叠?



