1 /* 2 * ACM2006 Greater NY Region C++ Solution to B - Triangular Numbers 3 * 4 * John Buck 5 * October, 2006 6 */ 7 #include <stdio.h> 8 #include <stdlib.h> 9 10 /* 11 * Define MAGIC_FORMULA if you want to see the real easy way 12 */ 13 //#define MAGIC_FORMULA 14 15 int main() 16 { 17 int d, n, k, i, sum, t; 18 char ibuf[256]; 19 20 /* Get number of datasets */ 21 if (::fgets(&(ibuf[0]), sizeof(ibuf), stdin) == NULL) 22 { 23 return(1); 24 } 25 d = ::atoi(&(ibuf[0])); 26 /* For each dataset */ 27 for (i = 1; i <= d; i++) 28 { 29 /* Get n */ 30 if (::fgets(&(ibuf[0]), sizeof(ibuf), stdin) == NULL) 31 { 32 break; 33 } 34 n = ::atoi(&(ibuf[0])); 35 /* Calculate sum: recall: T(n) = T(n-1) + n */ 36 sum = 0; 37 /* T(1) = 1 */ 38 t = 1; 39 for (k = 1; k <= n; k++) 40 { 41 /* Next T */ 42 t = t + (k+1); 43 sum += k*t; 44 } 45 #ifdef MAGIC_FORMULA 46 ::printf("%d %d %d (Formula: %d)\n", i, n, sum, 47 (n*(n+1)*(n+2)*(n+3))/8); 48 #else 49 ::printf("%d %d %d\n", i, n, sum); 50 #endif 51 } 52 return(0); 53 }