Mogolan
16.05.2022 16:53

У исполнителя каадратор две команды, которвм присвоены номера: 1) прибавь 3
2) возведи в квадрат
первая из них увеличивает число на 3, вторая возводит во вторвю степень.
исполнитель работает только с натуральными числами. составьте алгоритм получения из числа 6 числа 48, содержащий не более 5 команд

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
сашп17
12.05.2022 17:59

Так, ну давайте сначала поймём, что делает программа то.

У нас есть массив, которые состоит из 10 элементов.

Затем, мы видим цикл, который проходит по всему массиву, в нем мы видим if, который проверяет больше ли k-тый элемент массива, чем 12.

Получается, что программа считает сколько элементов массива больше 12.

Давайте смотреть.

Изначально m = 0

1 Элемент: 12 > 12, условие не выполняется m = 0

2 Элемент 15 > 12, условие выполняется, m = 1

3 Элемент 17 > 12, условие выполняется, m = 2

4 Элемент, 15 > 12, условие выполняется, m = 3

5 Элемент, 14 > 12, условие выполняется, m = 4

6 Элемент, 12 > 12, условие не выполняется, m = 4

7 Элемент, 10 > 12, условие не выполняется, m = 4

8 Элемент, 13 > 12, условие выполняется, m = 5

9 Элемент, 14 > 12, условие выполняется, m = 6

10 Элемент, 15 > 12, условие выполняется, m = 7

На экран будет выведено число 7

0,0(0 оценок)
Ответ:
ssyyppeerrmmaax
09.11.2022 05:36
//PascalABC.NET 3.2 сборка 1318

var
  l, r, counter, i: integer;

function DifNum(a: integer): integer;
var  se: set of integer;
  i: integer;
begin
  while a > 0 do
  begin
    if a mod 10 in se then
    begin
      DifNum := 0;
      exit;
    end
    else include(se, a mod 10);
    a := a div 10;
  end;
  DifNum := 1;
end;

begin
  read(l, r);
  for i := l to r do
    counter += DifNum(i);
  writeln(counter);
end.

//Альтернативное решение на Паскале

Var
  l,r:integer;
begin
read(l,r);
writeln(range(l,r).where(x -> x.tostring.toarray.distinct.count=length(x.tostring)).Count);
end.

//Dev-C++ 5.11 (C)

#include <stdio.h>
#include <malloc.h>

int DifNum(int);

int main(void)
 {int l,r,counter=0;
 scanf("%d %d",&l,&r);
 for(int i=l;i<=r;i++)
  counter+=DifNum(i);
 printf("%d",counter);
return 0;}

int DifNum(int a)
 {int k=1,*nums;
 nums=(int*)malloc(k*sizeof(int));
 nums[0]=-1;
 while(a>0)
  {for(int i=0;i<k;i++)
   if(a%10==nums[i])
    return 0;
  k++;
  nums=(int*)malloc(k*sizeof(int));
  nums[k-1]=a%10;
  a/=10;}
 free(nums);
 return 1;}

Пример ввода:
1 12
Пример вывода:
11
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота