点击打开链接
分析:
这类题最好的做法就是先算几组数据看看有什么联系,因为此题给的n比较大,所以不能暴力解决,但是可以先按思路写个程序测试数据(我当时用笔算,结果错了一组数据,后面步步错,总是得不到正确答案,为此花了生命的2/3时间来做这题)
先测试数据:#include<cstdio> int main() {int n,i,j,k,m; while(scanf("%d",&n)!=EOF) {m=2*n+1; int l=0; for(i=1;i<=m;i++) for(j=1;j<=m;j++) for(k=1;k<=m;k++) if(i+j+k==m&&i+j>k&&i+k>j&&j+k>i) l++; printf("%d\n",l); } return 0; }
之后可以得到n与答案的关系;
代码:
#include<cstdio> #include<cmath> #include<cstring> #include<algorithm> using namespace std; int main() {long long n; while(scanf("%lld",&n)!=EOF) { printf("%lld\n",n*(n+1)/2); } return 0; }