Фигурные числа - это числа, из которых можно составить правильную геометрическую
фигуру - треугольник, четырехугольник и т.д. Соответственно фигуре такие числа
называются треугольными, квадратными и т.п. Есть много интересных математических
закономерностей, связанных с фигурными числами, а также их суммами, произведениями
и разложениями. Эти закономерности можно поискать в математических учебниках и
на Википедии.
/*///////////////////////////////////////////////////////////////
Фигурные числа, GNU C++, 2011-01-24
Artix, master@7masterov.ru, icq:53666599, skype:artixmaster
* Error in code? Nothing is perfect!
* Free source for free Linux, use it for free!
* Please, do not remove this comment!
///////////////////////////////////////////////////////////////*/
#include <iostream>
using namespace std;
const int N = 5;
// Треугольные числа
// 1, 3, 6, 10, 15, 21, 28, 36, 45, 55
long f3(long n)
{
return n*(n+1)/2;
}
// Квадратные числа
// 1, 4, 9, 16, 25, 36, 49, 64, 81, 100
long f4(long n)
{
return n*n;
}
// Пятиугольные числа
// 1, 5, 12, 22, 35, 51, 70, 92, 117
long f5(long n)
{
return n*(3*n-1)/2;
}
// Шестиугольные числа
// 1, 6, 15, 28, 45, 66, 91, 120, 153
long f6(long n)
{
return 2*n*n-n;
}
// Общий случай
long f(long n, int base)
{
return n*((base-2)*(n-1)+2)/2;
}
int main()
{
cout << "f3()" << endl;
for(long i=1;i<=N;i++) cout << f3(i) << endl;
cout << endl << "f4()" << endl;
for(long i=1;i<=N;i++) cout << f4(i) << endl;
cout << endl << "f5()" << endl;
for(long i=0;i<=N;i++) cout << f5(i) << endl;
cout << endl << "f6()" << endl;
for(long i=0;i<=N;i++) cout << f6(i) << endl;
cout << endl << "f(8)" << endl;
for(long i=0;i<=N;i++) cout << f(i,8) << endl;
return 1;
}
// eof
Справочник алгоритмов v0.05 © 2007-2025 Igor Salnikov aka SunDoctor