Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.03.2016, 19:20   #41
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,311
По умолчанию

В те, не так далёкие времена, жило-было такое хорошее устройство, как арифмометр "Феликс". И вот на нём приходилось считать орбиты до 25-го знака. Там и учили смотреть на цифирь под определённым углом ...

Как-то так, ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 26.03.2016, 19:25   #42
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Собственно говоря а почему нельзя? Точнее, если с головой дружить, то:
20^19 = 2^19*10^19.
Что мешает получить результат для 2^19 и пририсовать 19 нулей справа?
согласен.

Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 26.03.2016, 22:36   #43
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

психануууууууул.

проверял только на этом примере (20^19), конечно не длинная арифметика, но работает. (говнокод).

спасибо не обязательно
Изображения
Тип файла: jpg Безымянный.jpg (17.6 Кб, 62 просмотров)
Вложения
Тип файла: zip программа.zip (213.0 Кб, 12 просмотров)
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 27.03.2016, 22:10   #44
Doni11
Пользователь
 
Регистрация: 09.03.2016
Сообщений: 40
По умолчанию

Цитата:
Сообщение от Алексей_2012 Посмотреть сообщение
психануууууууул.

проверял только на этом примере (20^19), конечно не длинная арифметика, но работает. (говнокод).

спасибо не обязательно
Слушай, я возвожу в степень 28^19 и в программе получается (313 330 445 002 941 000 000 000 000 0), а на калькуляторе (3133304450029408431470804992)
как мне сделать чтобы в этоц проге также высчитавалось ?
Doni11 вне форума Ответить с цитированием
Старый 27.03.2016, 22:15   #45
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Тока длинная арифметика - моделирование умножения в столбик
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 27.03.2016, 22:24   #46
Doni11
Пользователь
 
Регистрация: 09.03.2016
Сообщений: 40
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Тока длинная арифметика - моделирование умножения в столбик
Так мне нельзя возвести в эти степени ?
Doni11 вне форума Ответить с цитированием
Старый 27.03.2016, 22:28   #47
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Так мне нельзя возвести в эти степени ?
тебе - нельзя.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 29.03.2016, 05:00   #48
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

Цитата:
я возвожу в степень 28^19 и в программе получается (313 330 445 002 941 000 000 000 000 0), а на калькуляторе (3133304450029408431470804992)
Потому что 28 не делится на 10 нацело!

Если готовое решение (для длинных числел), то:
Код:
function Slozhenie(chislo1, chislo2: string): string;
var i,dlina:integer;
    p:array of byte;
begin
   dlina:=Length(chislo1);
   If Length(chislo2)>dlina then
      dlina:=Length(chislo2)+1 else
      dlina:=dlina+1;
   While Length(chislo1)<dlina do
      Insert('0',chislo1,1);
   While Length(chislo2)<dlina do
      Insert('0',chislo2,1);
   SetLength(p,dlina);
   Result:='';
   For i:=0 to dlina-1 do
      p[i]:=0;
   For i:=dlina downto 2 do
   begin
      p[i-1]:=p[i-1]+StrToInt(chislo1[i])+StrToInt(chislo2[i]);
      If p[i-1]>=10 then
      begin
         p[i-2]:=p[i-1] div 10;
         p[i-1]:=p[i-1] mod 10;
      end;
   end;
   For i:=0 to dlina-1 do
      Result:=Result+IntToStr(p[i]);
   While (Result<>'') and (Result[1]='0') do
      Delete(Result,1,1);
end;

function Umnozhenie(chislo1, chislo2: string): string;
var i1,i2:integer;
    s:string;
    p:array of byte;
begin
   SetLength(p,Length(chislo1)+Length(chislo2));
   Result:='';
   For i1:=Length(chislo1) downto 1 do
   begin
      s:='';
      For i2:=0 to Length(chislo1)+Length(chislo2)-1 do
         p[i2]:=0;
      For i2:=Length(chislo2) downto 1 do
      begin
         p[i1+i2-1]:=p[i1+i2-1]+StrToInt(chislo1[i1])*StrToInt(chislo2[i2]);
         If p[i1+i2-1]>=10 then
         begin
            p[i1+i2-2]:=p[i1+i2-1] div 10;
            p[i1+i2-1]:=p[i1+i2-1] mod 10;
         end;
      end;
      For i2:=0 to Length(chislo1)+Length(chislo2)-1 do
         s:=s+IntToStr(p[i2]);
      While (s<>'') and (s[1]='0') do
         Delete(s,1,1);
      Result:=Slozhenie(Result,s);
   end;
end;

function WStepen(chislo, stepen: integer):string;
var i:integer;
begin
   Result:=IntToStr(chislo);
   For i:=2 to stepen do
      Result:=Umnozhenie(Result,IntToStr(chislo));
end;

function Razryad(n: string): string;
var i:integer;
begin
   i:=Length(n)-2;
   While i>1 do
   begin
      Insert(' ',n,i);
      i:=i-3;
   end;
   Result:=n;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
   Caption:=Razryad(WStepen(28,19));
end;
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]

Последний раз редактировалось newerow1989; 29.03.2016 в 06:26.
newerow1989 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
c++ как возвести матрицу в степень n ? proef Помощь студентам 12 13.10.2013 23:48
как возвести число в степень 2^3 yura_zb Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 19.10.2012 08:49
Как возвести число в степень? Wintrymoon Паскаль, Turbo Pascal, PascalABC.NET 36 09.05.2011 15:11
как возвести в степень??? Yokka Свободное общение 4 24.03.2010 12:52
как ВОЗВЕСТИ В СТЕПЕНЬ? Sova123456 Помощь студентам 2 14.05.2008 20:19