题目大意:
神秘学妹:薛学长,能请教你一道题吗?
薛学霸:好呀好呀!
神秘学妹:给你一个数n,则从1,2,3......n中取出3个不同的整数来组成三角形的三条边有多少种方法。
薛学霸:.............
输入包含多组测试数据,每组数据第一行为整数n(3<=n<=1000000)
输出可以组成的三角形的个数
Input:
5 8
Output:
3 22#include <iostream> #include <cstring> #include <cstdio> using namespace std; long long a[1000010]; int main() { int n; int i; a[3]=0; long long sum=0; long long num=1; for(i=4;i<=1000000;i++) { sum+=num; a[i]=a[i-1]+sum; if((i-3)%2==0)num++; } while(~scanf("%d",&n)) { printf("%I64d\n",a[n]); } return 0; }