Cách 1:
Tổng các bình phương P(n) = 12 + 22 + … + n2 = n(n+1)(2n+1) / 6.
Tổng các số nguyên dương S(n) = 1 + 2 + … + n = n(n+1) / 2.
Do đó, S(n) = 3P(n) / (2n+1).
#include <iostream>
int main()
{
int p = 0;
for (int i = 1; i <=50; i++)
{
p += i*i;
std::cout << (3*p)/(2i+1) << " ";
}
}
Cách 2:
Tổng các lập phương C(n) = 13 + 23 + … n3 = [n(n+1) / 2]2.
Tổng S(n) = 1 + 2 + … + n = n(n+1) / 2.
Suy ra, C(n) = [S(n)]2.
#include <iostream>
#include <cmath>
int main()
{
int c = 0;
for (int i = 1; i <= 50; i++)
{
c += i*i*i;
std::cout << std::static_cast<int>(std::sqrt(c)+0.5) << " ";
}
}
Cách 3:
Tổng các lập phương C(n) = 13 + 23 + … n3 = [n(n+1) / 2]2
Tổng các bình phương P(n) = 12 + 22 + … + n2 = n(n+1)(2n+1) / 6.
Tổng S(n) = 1 + 2 + … + n = n(n+1) / 2.
Lấy C(n) trừ đi P(n), sau đó đặt nhân tử chung:
- C(n) - P(n) = (n-1)n(n+1)(3n+2) / 12.
- C(n) - P(n) = S(n) . [(n-1)(3n+2) / 6).
Từ đó, S(n) = 6[C(n) - P(n)] / [(n-1)(3n+2)].
#include <iostream>
int main()
{
std::cout << 1 << " ";
int p = 1;
int c = 1;
for (int i = 2; i <= 50; i++)
{
p += i*i;
c += i*i*i;
std::cout << 6*(c-p) / ((i-1)*(3*i+2)) << " ";
}
}
Đó là 3 cách “tào lao” của mình.