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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.10.2012, 20:14   #1
nonak
Новичок
Джуниор
 
Регистрация: 23.10.2012
Сообщений: 3
По умолчанию Школьный курс Pascal abc

Как возвести в степень число в паскале в типе integer? Вот пробовал получается только если число умножить на себя N-ое количество раз но такой вариант не устраивает. Помогите новичку
Код:
var
 n,a1,a2,a3,a4 :integer;
begin
read(a1);
read(a2);
read(a3);
read(a4);
n:=exp(ln(a4)*9)+exp(ln(a3)*8)+exp(ln(a2)*2)+exp(ln(a1)*5);
writeln(n);
end.
nonak вне форума Ответить с цитированием
Старый 23.10.2012, 20:27   #2
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Код:
begin
//............
writeln(power(a4,9)+power(a3,8)+power(a2,2)+power(a1,5));
//.........
end.
p.s в паскале АВС power стандартная функа
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 24.10.2012, 01:52   #3
nonak
Новичок
Джуниор
 
Регистрация: 23.10.2012
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Mad_Cat Посмотреть сообщение
Код:
begin
//............
writeln(power(a4,9)+power(a3,8)+power(a2,2)+power(a1,5));
//.........
end.
p.s в паскале АВС power стандартная функа
а как можно обойти power(преподаватель попросил не использовать) и почему мой вариант не работает?
nonak вне форума Ответить с цитированием
Старый 24.10.2012, 05:27   #4
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

n:real; должно быть
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 24.10.2012, 12:05   #5
whatever
a.k.a. Skull
Форумчанин
 
Регистрация: 17.11.2009
Сообщений: 963
По умолчанию

Можно и без Real
Код:
n:=round(exp(ln(a4)*9)+exp(ln(a3)*8)+exp(ln(a2)*2)+exp(ln(a1)*5));
Но это только для небольших a1,a2,a3,a4
Все тривиальное просто
whatever вне форума Ответить с цитированием
Старый 24.10.2012, 16:42   #6
nonak
Новичок
Джуниор
 
Регистрация: 23.10.2012
Сообщений: 3
По умолчанию

Код:
 for a4:=0 to 9 do
   for a3:=0 to 9 do
   for a2:=0 to 9 do
   for a1:=0 to 9 do
   
   if round(exp(ln(a1)*4)+exp(ln(a4)*4)+exp(ln(a3)*4)+exp(ln(a2)*4))=a1*1000+a2*100+a3*10+a4
как реализовать программу по поиску 4-х значных чисел Армтронга проблима в том что логорифм не может быть 0-ым как обойти эту ситуацию
nonak вне форума Ответить с цитированием
Старый 24.10.2012, 17:56   #7
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

Возможно, можно оптимизировать:
Код:
uses
  crt;

var
  i: integer;

function bp(a, k: integer): integer;
var
  b: integer;
begin
  if k = 1 then
    bp := a
    else
  if k mod 2 = 0 then
  begin
    b := bp(a, k div 2);
    bp := b * b;
  end
    else
  begin
    b := bp(a, k div 2);
    bp := b * b * a;
  end;
end;

function arm(a: integer): boolean;
var
  s: string;
  k, j, sum, b: integer;
begin
  str(a, s);
  k := length(s);
  sum := 0;
  b := a;
  for j := 1 to k do
  begin
    sum := sum + bp(b mod 10, k);
    b := b div 10;
  end;
  if sum = a then
    arm := true
  else
    arm := false;
end;

begin
  for i := 1000 to 9999 do
    if arm(i) then
      writeln(i);
  readln;
end.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 24.10.2012 в 22:55.
BDA вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Pascal ABC школьный курс perec200 Помощь студентам 0 20.04.2012 16:17
Программы в Pascal, среда pascal ABC. Лабораторные работы Одинокая Волчица Фриланс 8 10.02.2012 20:09
Неудобство ABC Pascal и глюк Borland Pascal proser93 Помощь студентам 0 19.11.2011 19:01
pascal, контрольная работа, 1-ый курс, фит felicity Помощь студентам 0 04.06.2011 09:33
Экспресс курс Turbo Pascal MAKEDON Паскаль, Turbo Pascal, PascalABC.NET 2 12.02.2009 15:50