1

Тема: Піднесення до степеня

умова:
вхід - два цілих числа а і б(ціле невід'ємне)
вихід - єдине число а в степені б

мій код:

var i,a,c,b:integer;
BEGIN 
  read(a);
  read(b); 
  c:=a;
  
  if b>1 then for i:=1 to b-1 do c:=c*a;

 if b=0 then c:=1; 
 if b=1 then c:=a; 
 if (b=0) and (a=0) then c:=0; writeln(c); 

END.

тесетр видає 3/5 правильні відповіді. Порадьте, що додати

Cyan: код слід брати в теги [ code]

2 Востаннє редагувалося Chemist-i (22.11.2013 18:51:29)

Re: Піднесення до степеня

Хто такий "тесетр"?
Що за компілятор у Вас?
І ще як у Вас read() отримує результат? як він пише його у змінну?

x

3

Re: Піднесення до степеня

програма, яка використовується на олімпіадах, у ній закладені тести на перевірку коректної роботи програми. Вона сама підставляє тести, якщо відповідь правильна, то зараховується бал. (мені приклади тестів не відомі)

4 Востаннє редагувалося Chemist-i (22.11.2013 18:55:04)

Re: Піднесення до степеня

Окей, як вона називається? Яка версія, яка версія компілятора? Яке середовище?

x

5 Востаннє редагувалося fer123 (22.11.2013 18:56:20)

Re: Піднесення до степеня

ось сам сервіс http://37.53.75.99/AlgoTester/
задача 2 та 3

Re: Піднесення до степеня

Якщо пам’ять не зраджує, то де степеня ще можна піднести за наступною формулою:

exp(ln(a)*b)

7

Re: Піднесення до степеня

fer123
З автоматичними тестерами є проблема: треба щоб формат вводу та виводу вашої програми співпадав із тим, на який очікує тестер. Спробуйте замінити read на ReadLn. Або іще один варіант readln(a, b);

8

Re: Піднесення до степеня

Також у завданні сказано: "ціле невідємне число B". А що має відбутися, якщо ввести від'ємне В?

9

Re: Піднесення до степеня

якщо в умові сказано, що "ціле та невід'ємне" то такими варіанртами тестер і має перевіряти.
До речі, одна проблема вже вирішена, потрібно було використовувати тип int64, але всерівно один варіант досі не вірний (4/5)

10

Re: Піднесення до степеня

Чи може бути таке, що на вхід подаються якісь дуже великі, наприклад двадцятизначні числа? Тоді й int64 не вистачить.