Модераторы: volvo877, Snowy, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Недоделанная задача! Задача впринципе сделана! 
:(
    Опции темы
impario
  Дата 26.5.2009, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Доброе вам время суток!! Приятного вам время провождения!
Задача на длинную арифметику. 
  Вычислить точное значение (N!) при условии что n>4.
   Загвоздка в том что нужно сделать чтоб через стринговую переменную выводить слишком большие значения даже для Longinteger. Помогите пожалуйста разобраться. Задача впринципе уже наполовину сделана. Только осталось внести через стринг значения превышающие лимит выдачи на экран. Задача в паскале а не в дельфи.  
Код
program pract;
 uses crt;
  var i,n,k:integer;
   b:real;
   s:string;

        Begin
        clrscr;
         Writeln('Vac npuBetcBuet nporpaMMa no Bi4icleHuy Factoriala');
          writeln('Dlya prodojenia najmite Enter');
           readln;
             Writeln('Vvedite 4iclo bolshe 4');
             readln(n);
              if n<4 then
               begin
                 Writeln('Oshibka povtorite vvod');
                 readln;
               end
                else
                 begin
                   k:=0;
                   b:=1;
                   for i:=1 to n do
                     begin
                      k:=k+1;
                      b:=b*i;
                     end;
                  end;
              begin

                   Writeln('Otvet= ' ,b:6:4);
                       readln;
                      end;
       end.

PM MAIL   Вверх
bems
Дата 26.5.2009, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

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



тут проблема в том, что Longinteger не вмещает нужного числа еще при ращете, поэтому тебе нежно саму математику делать, а не только вывод на экран. Так что к сожалению задача не недоделаная, а не сделаная вообще


--------------------
Обижено школьников: 8
PM MAIL   Вверх
impario
Дата 26.5.2009, 14:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Нет!!! Здесь просто через стринг нужно число допустим 120 разложить как строковую переменную 1- это ячека строки тоесть эллемент 2тоже и ноль так вот мы допустим сначала умножаем 6 на ноль потом на 2 если больше чем 9 то мы как бы сохраняем 1-десятую и прибавляем к получившейся. И если 20! то 1*2*3*4*5*6*7*8 и т.д. вот но я сам незнаю как так сделать!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

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

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


 




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


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

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