Поиск:

Ответ в темуСоздание новой темы Создание опроса
> 21>>>двадцать один 
:(
    Опции темы
sos
Дата 30.10.2005, 15:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 12.8.2005

Репутация: нет
Всего: нет



Пацаны нужен алгоритм(C++;PHP) :
1.вход.данные<<<число>>[0...99999]
2.выход.данные<<<число записанное слоавми>>>(учитывая спряжение)
я знаю,что такой алгоритм уже есть!!!Пацаны киньте ссылку,горю!!!

PM MAIL   Вверх
mr.DUDA
Дата 30.10.2005, 15:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: нет
Всего: 232



Есть готовый пример, но он на рабочем компе.
Если только завтра, и только на C# smile


--------------------
user posted image
PM MAIL WWW   Вверх
sos
Дата 30.10.2005, 15:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 12.8.2005

Репутация: нет
Всего: нет



ok mr.DUDA!!!буду благодарен...
PM MAIL   Вверх
codelord
Дата 30.10.2005, 20:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 777
Регистрация: 7.5.2005
Где: ты моя темноглаза я где?!

Репутация: нет
Всего: 39



Цитата

Код

//--------------------------------------------------------------------------------------
//summa.h
AnsiString triada(AnsiString in, int tn)
{
if (in == "   ") return "";
if (in == "000") return "";
AnsiString out = "";
AnsiString sotni[9] = 
{"сто", "двести", "триста", "четыреста", "пятьсот",
"шестьсот", "семьсот", "восемьсот", "девятьсот"};
AnsiString dubl[10] = 
{"десять", "одиннадцать", "двенадцать", "тринадцать", "четырнадцать",
"пятнадцать", "шестнадцать", "семнадцать", "восемнадцать", "девятнадцать"};
AnsiString des[8] = 
{"двадцать", "тридцать", "сорок", "пятьдесят",
"шестьдесят", "семьдясят", "восемьдясят", "девяносто"};
AnsiString ed[9] = {"один", "два", "три", "четыре", "пять", "шесть","семь", "восемь", "девять"};
AnsiString edj[9] = {"одна", "две", "три", "четыре", "пять", "шесть","семь", "восемь", "девять"};
AnsiString ind[5] = {"", " тысяч", " миллион", " миллиард", " триллион"};
AnsiString post;
if (in[1] != ' ') if (in[1] != '0')
        { out = out + sotni[StrToInt(in[1])-1]; }
if (in[2] == '1')
        { out = out + " " + dubl[StrToInt(in[3])]; }
if (in[2] != '1') if (in[2] != ' ') if (in[2] != '0')
        { out = out + " " + des[StrToInt(in[2])-2]; }
if (in[3] != '0') if (in[2] != '1')
        {
        if (tn == 1)
                out = out + " " + edj[StrToInt(in[3])-1];
        if (tn != 1)
                out = out + " " + ed[StrToInt(in[3])-1];
        }
if (tn>0) if (in[2] != '1')
        {
        if (tn==1) switch (in[3])
                {
                case '1': post = ind[tn] + "а"; break;
                case '2': post = ind[tn] + "и"; break;
                case '3': post = ind[tn] + "и"; break;
                case '4': post = ind[tn] + "и"; break;
                default : post = ind[tn] + ""; break;
                }
        if ((tn==2)||(tn==3)||(tn==4)) switch (in[3])
                {
                case '1': post = ind[tn] + ""; break;
                case '2': post = ind[tn] + "а"; break;
                case '3': post = ind[tn] + "а"; break;
                case '4': post = ind[tn] + "а"; break;
                default : post = ind[tn] + "ов"; break;
                }
        }
else
        {
        switch (tn)
                {
                case 1  : post = ind[tn]; break;
                default : post = ind[tn] + "ов"; break;
                }
        }
out = out + post;
return out;
}
AnsiString summa(AnsiString in)
{
AnsiString out;
AnsiString trs[5];
AnsiString tro[5];
AnsiString buf;
int n,s;
div_t dr;

while (in.Length() < 15)
        {
        in = " " + in;
        }
for (n=0;n<5;n++) trs[n] = in;
trs[0] = trs[0].Delete(1,in.Length()-3);
trs[1] = trs[1].Delete(1,in.Length()-6).Delete(4,4);
trs[2] = trs[2].Delete(1,in.Length()-9).Delete(4,6);
trs[3] = trs[3].Delete(1,in.Length()-12).Delete(4,9);
trs[4] = trs[4].Delete(1,in.Length()-15).Delete(4,12);

for (n=0;n<5;n++)
        {
        tro[n] = triada(trs[n],n);
        }
out = " "+tro[4]+" "+tro[3]+" "+tro[2]+" "+tro[1]+" "+tro[0]+" ";
out = out.Trim();
return out;
}
//--------------------------------------------------------------------------------------
// / summa.h



работать :
Цитата

AnsiString s = summa("123");





Это сообщение отредактировал(а) codelord - 30.10.2005, 20:09


--------------------
Доступен поиск по исходным кодам в GOOGLE.
http://www.google.com/codesearch
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0456 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.