Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Альфамагический квадрат. Единственность.

Магический Квадратик Ученик (243), на голосовании 3 месяца назад
Рассмотрим магческий квадрат:
119 213 16
13 116 219
216 19 113


Если каждое число заменить на слово, то получится:

сто девятнадцать двести тринадцать шестнадцать
тринадцать сто шестнадцать двести девятнадцать
двести шестнадцать девятнадцать сто тринадцать


Затем если подсчитать количество букв в каждом "числе" и записать обратно в ячейки, то получится:

15 16 11
10 14 18
17 12 13


И этот квадрат тоже магический!!


А есть еще такие на русском языке?
На английком языке таких квадратов больше, а есть дважды альфмагические квадраты? То есть, если проделать данную операцию через английский язык дважды, то он останется альфмагическим
Голосование за лучший ответ
Батаев Дмитрий Просветленный (22920) 4 месяца назад
это уже вопрос к лингвистам и сравни просто числительные на английском и русском языках просто по длине ))))))))))))))))))
Батаев ДмитрийПросветленный (22920) 4 месяца назад
а вообще это я понял на статистику задача. Давай просто все русские числительные сначала представим в виде строк и будем вычислять их длину используя string
Батаев ДмитрийПросветленный (22920) 4 месяца назад
Набросаю пока подсчёт букв до 1000. Сам проверяй если что
Батаев ДмитрийПросветленный (22920) 4 месяца назад
#include <windows.h>
#include <string>
#include <iostream>
#include <iomanip>
#include <vector>

using namespace std;
string Smb [20]= {"нуль","один","два","три","четыре","пять","шесть","семь","восемь",
"девять","десять","одиннадцать","двенадцать","тринадцать","четырнадцать",
"пятнадцать","шестнадцать","семнадцать","восемнадцать","девятнадцать",};

string Smb2[8]= {"двадцать","тридцать","сорок","пятьдесят","шестьдесят","семьдесят",
"восемьдесят","девяноста",};
string Smb3[9]= {"сто","двести","триста","четыреста",
"пятьсот","шестьсот","семьсот","восемьсот","девятьсот",};
Батаев ДмитрийПросветленный (22920) 4 месяца назад
class MagicSquare
{
public:
MagicSquare()
{
for (int r=0; r<3; r++)
{
for (int c=0; c<3; c++)
{
Square[r][c]= 0;
}
}
}

~MagicSquare(){};

void PrintSquare()
{
for (int r=0; r<3; r++)
{
for (int c=0; c<3; c++)
{
cout << Square[r][c] << '\t';
}
cout << endl;
}
}
Батаев ДмитрийПросветленный (22920) 4 месяца назад
void CountSymbol ()
{
string s, s2;
for (int a=0; a<20; a++)
{
s= Smb[a];
ln.push_back(s.size());
}
for (int a=0; a<8; a++)
{
s2= Smb2[a]; ln.push_back(s2.size());
int cnt= 1;
while (cnt<10)
{
s= Smb[cnt]; s2= Smb2[a];
ln.push_back(s.size()+s2.size()); cnt++;
}
}
for (int a=0; a<9; a++)
{
s2= Smb3[a]; ln.push_back(s2.size());
int cnt= 1;
while (cnt<100)
{
s2= Smb3[a];
ln.push_back(ln[cnt]+s2.size()); cnt++;
}
}
Батаев ДмитрийПросветленный (22920) 4 месяца назад
cout << endl;

for (int a=0; a<20; a++) cout << a << '\t';
cout << endl;
for (int a=0; a<20; a++) cout << ln[a] << '\t';

cout << endl << endl;

for (int a=200; a<230; a++) cout << a << '\t';
cout << endl;
for (int a=200; a<230; a++) cout << ln[a] << '\t';

cout << endl << endl;

for (int a=400; a<430; a++) cout << a << '\t';
cout << endl;
for (int a=400; a<430; a++) cout << ln[a] << '\t';
}

protected:
int Square [3][3];
vector < int > ln;
private:
};
Батаев ДмитрийПросветленный (22920) 4 месяца назад
int main(int argc, char **argv)
{
system("chcp 1251 > nul"); // Руссификация сообщений
setlocale(LC_ALL, "Russian");

MagicSquare ms; ms.PrintSquare(); ms.CountSymbol();

cout << endl << "Хелло Ворлд" << endl;
system("pause"); // system("pause > nul");
return 0;
}
Батаев ДмитрийПросветленный (22920) 4 месяца назад
Создан вектор, в котором номер элемента это значение числа, а его данное это количество букв в числительном. Перебор вектора это уже комбинаторика )))
Батаев ДмитрийПросветленный (22920) 4 месяца назад
Слушай, ты чего голову дуришь? Получил вектор и наслаждайся
Магический Квадратик Ученик (243) Батаев Дмитрий, ?
Похожие вопросы