Задача:
Среднегодовая производительность труда
За первый год производительность труда на предприятии возросла на [latex]p[/latex]1[latex]%[/latex], за второй и третий — соответственно на [latex]p[/latex]2[latex]%[/latex] и [latex]p[/latex]3[latex]%.[/latex] Найти среднегодовой прирост производительности (в процентах).
P1(%) | P2(%) | P3(%) | Р (среднегодовой прирост производительности) (%) |
50 | 68 | 34 | 50.03 |
0 | 25 | 75 | 29.81 |
-25 | 25 | 78 | 18.61 |
0 | -25 | 0 | -9.14 |
1.4 | 43 | 0.7 | 13.45 |
Код программы на С++
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#include <iostream> #include <math.h> using namespace std; int main() { double p1, p2, p3, p, a; printf("Plese, write percentages of productivity: \n "); scanf("%lf %lf %lf", &p1, &p2, &p3); a=(p1/100+1)*(p2/100+1)*(p3/100+1); a=pow(a,1.0/3); p=100*(a-1); printf("Productivity: %.2lf%%", p); return 0; } |
Код программы на Java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
import java.util.*; import java.lang.*; import java.io.*; import java.lang.Math; class Main { public static void main (String[] args) throws java.lang.Exception { Scanner in = new Scanner(System.in); double p1, p2, p3, p, a; p1=in.nextDouble(); p2=in.nextDouble(); p3=in.nextDouble(); a=(p1/100+1)*(p2/100+1)*(p3/100+1); a=Math.pow(a,1.0/3); p=100*(a-1); System.out.printf("Productivity: %8.2f", p); } } |
Алгоритм задачи предельно прост.
Пользователь задает нам три показателя прироста производительности на предприятии, за каждый год соответственно.
Предположим, что производительность труда в году, предшествующему увеличению, это [latex]a[/latex], тогда в следующем году прирост будет вычисляться по формуле [latex]a\cdot \left( \frac { { p }_{ n } }{ 100 } +1 \right)[/latex], где [latex]{ p }_{ n }[/latex] это показатель прироста производительности за соответствующий год.
Учитывая, что для каждого следующего года показатель [latex]a[/latex] это производительность за предыдущий год, мы получим формулу:
[latex]p=\left( \sqrt [ 3 ]{ (\frac { { p }_{ 1 } }{ 100 } +1)\cdot (\frac { { p }_{ 2 } }{ 100 } +1)\cdot (\frac { { p }_{ 3 } }{ 100 } +1) } -1 \right) \cdot 100[/latex].Подставляя в формулу соответствующие значения мы с легкостью получим результат.