Вчем ошибка? даны два целых числа a и b (a < b). найти все целые числа, расположенные между данными числами (не включая сами эти числа), в порядке их убывания, а также количество n этих чисел. язык си
#include
#include
#include
void main()
{
int a, b, s, i, b;
scanf_s("%d", & a);
scanf_s("%d", & b);
if (a < b) {
int
c = b;
b = a;
a = c;
}
b = a - b;
printf("%d", b);
for (i = 1; i < b; i++) {
s = a - 1;
printf("%d", s);
}
_getch();
return;
}
1) a x a = a² ⇒ b; b x a = a³ ⇒ результат
2) a x a = a² ⇒ b; b x b = a⁴ ⇒ c; c x c = a⁸ ⇒ c; c x b = a¹⁰ ⇒ результат
Программа на языке PascalABC.Net
var
a,b,c,y:real;
begin
Write('Введите число: '); Read(a);
b:=a*a; y:=b*a; Writeln('Третья степень числа равна ',y);
c:=b*b; c:=c*c; y:=b*c;
Writeln('Десятая степень числа равна ',y)
end.
Тестовые решения:
Введите число: 2
Третья степень числа равна 8
Десятая степень числа равна 1024
Введите число: -13.594
Третья степень числа равна -2512.128188584
Десятая степень числа равна 215512594781.574
для нахождения НОДа не мало, не буду углубляться во всякие сложные алгоритмы, так как вряд ли Вы их проходите.
Сравним перебор и алгоритм Евклида, сразу можем сказать, что алгоритм Евклида в разы быстрее, так как при переборе мы тупо перебираем значения, то есть, данный алгоритм зависит от величины числа очень сильно. Конечно, алгоритм Евклида также зависит от введенного числа, однако, в нём будет намного меньше повторений, нежели в с перебором.
Можем глянуть немного статистики:
Генерируется 500 пар чисел
Перебор - 0.5022 с
Алгоритм Евклида - 0.0008
Теперь мы точно можем сделать вывод, что алгоритм Евклида в разы быстрее простого перебора.