На сайте в режиме реального времени публикуются решения контестных задач сервиса Codeforces.
Загружайте свои решения( здесь ) прямо на сайте. Подробнее. Жду ваших решений
 

По разделам

 

Задача Proc 39


Используя функции Power1 и Power2 (задания Proc37 и Proc38), описать функцию Power3(A, B) вещественного типа с вещественными параметрами, находящую A
B следующим образом: если B имеет нулевую
дробную часть, то вызывается функция Power2(A, Round(B)); в противном случае вызывается функция Power1(A, B). С помощью этой функции
найти A
P
, B
P
, C
P
, если даны числа P, A, B, C.

Код (C/C++)

#include <stdio.h>
#include <math.h>
 
float power1(float a, float b){
    return a<=0?0:exp(b*log(a));
}
 
float power2(float a, int n){
    float temp=1;
    int i;
    for (i=1; i<=abs(n); ++i) temp*=a;
    return n<0?1/temp:temp;
}
 
float power3(float a, float b){
    if  (fmod(b,1)==0) return power2(a, (int)b);
    else return power1(a,b);
}
 
 
 
int main(void)
{
    float p,a,b,c;
    printf("P:");
    scanf("%f", &p);
    printf("A: ");
    scanf("%f", &a);
    printf("B: ");
    scanf("%f", &b);
    printf("C: ");
    scanf("%f", &c);
 
    printf("power3: %f\n",power3(a,p));
    printf("power3: %f\n",power3(b,p));
    printf("power3: %f\n",power3(c,p));
 
    return 0;
}

Код (Python)

import random
import math

def Power1(A,B):
    result = math.exp(B*math.log(A))
    return result

def Power2(A,N):
    i = 0
    p = 1
    
    if N < 0:
        N1 = -N
    else:
        N1 = N
        
    while i < N1:
        p *= A
        i += 1
    
    if N < 0:
        p = 1 / p

    return p

def Power3(A,B):
    result = Power2(A,B) if B == int(B) else Power1(A,B)
    return result

A = 2
P = 10
print(A,"^",P," = ",Power3(A,P),"; ",A**P)

A = 36
P = 0.5
print(A,"^",P," = ",Power3(A,P),"; ",A**P)

A = 2.25
P = 0.5
print(A,"^",P," = ",Power3(A,P),"; ",A**P)

A = 2.25
P = -0.5
print(A,"^",P," = ",Power3(A,P),"; ",A**P)
									

Код (Pascal)

program Proc39;
 
Function Power1(A,B:Real):Real;
begin
  if a>0 then Power1:=exp(B*Ln(a))
  else Power1:=0;
end;
 
Function Power2(A:Real;N:Integer):Real;
var
i:integer;
TempRez:Real;
begin
 TempRez:=1;
 
 if N=0 then TempRez:=1
 else
 for i:=1 to abs(N) do TempRez:=TempRez*A;
 if N<0 then TempRez:=1/TempRez;
 Power2:=TempRez;
end;
 
Function Power3(A,B:Real):Real;
begin
 if B - Round(B) = 0 then Power3:=Power2(A,Round(B))
 else Power3:=Power1(A,B);
end;
 
var
  P,A,B,C:real;
 
 
begin
   Write('P :');
   Readln(P);
   Write('A :');
   Readln(A);
   Write('B :');
   Readln(B);
   Write('C :');
   Readln(C);
   Writeln(Power1(A,P));
   Writeln(Power1(B,P));
   Writeln(Power1(C,P));
end.
									




Proc. Абрамян
Proc 1 Просмотров: 14
Proc 2 Просмотров: 14
Proc 3 Просмотров: 12
Proc 4 Просмотров: 12
Proc 5 Просмотров: 15
Proc 6 Просмотров: 10
Proc 7 Просмотров: 14
Proc 8 Просмотров: 13
Proc 9 Просмотров: 13
Proc 10 Просмотров: 12
Proc 11 Просмотров: 14
Proc 12 Просмотров: 11
Proc 13 Просмотров: 12
Proc 14 Просмотров: 16
Proc 15 Просмотров: 13
Proc 16 Просмотров: 11
Proc 17 Просмотров: 24
Proc 18 Просмотров: 13
Proc 19 Просмотров: 15
Proc 20 Просмотров: 11
Proc 21 Просмотров: 14
Proc 22 Просмотров: 12
Proc 23 Просмотров: 11
Proc 24 Просмотров: 13
Proc 25 Просмотров: 10
Proc 26 Просмотров: 13
Proc 27 Просмотров: 17
Proc 28 Просмотров: 18
Proc 29 Просмотров: 24
Proc 30 Просмотров: 26
Proc 31 Просмотров: 13
Proc 32 Просмотров: 14
Proc 33 Просмотров: 12
Proc 34 Просмотров: 19
Proc 35 Просмотров: 11
Proc 36 Просмотров: 12
Proc 37 Просмотров: 12
Proc 38 Просмотров: 11
Proc 39 Просмотров: 13
Proc 40 Просмотров: 11
Proc 41 Просмотров: 14
Proc 42 Просмотров: 12
Proc 43 Просмотров: 12
Proc 44 Просмотров: 13
Proc 45 Просмотров: 15
Proc 46 Просмотров: 11
Proc 47 Просмотров: 12
Proc 48 Просмотров: 14
Proc 49 Просмотров: 11
Proc 50 Просмотров: 13
Proc 51 Просмотров: 20
Proc 52 Просмотров: 12
Proc 53 Просмотров: 13
Proc 54 Просмотров: 11
Proc 55 Просмотров: 14
Proc 56 Просмотров: 10
Proc 57 Просмотров: 11
Proc 58 Просмотров: 11
Proc 59 Просмотров: 9
Proc 60 Просмотров: 12

Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться