Дано целое число.Подсчитать в нём произведение цифр,которые расположены ** нечётных...

0 голосов
58 просмотров

Дано целое число.Подсчитать в нём произведение цифр,которые расположены на нечётных позициях.


Информатика (19 баллов) | 58 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

Здесь пришлось учитывать положительные и отрицательные числа, т.к. длина строки с отрицательным числом включает в себя и знак минус. Поэтому в некоторых местах программы я добавлю пояснение.

var
 
  n,p:integer;
   s: string;
begin
  
write ('Введите число: ');
 
 readln (n);
  if n<0 then n:=-n;</strong> // отрицательное число переделываем в положительное, чтобы "длина строки" ниже не получилась больше количества цифр в числе
  str(n,s); // преобразуем число в строку, чтобы узнать длину числа (количество цифр)
  if (length(s) mod 2)=0 then n:=n div 10; // проверяем длину числа на четность. так как нам нужны цифры с НЕЧЕТНЫХ мест, убираем из числа последнюю цифру, которая стоит на ЧЕТНОМ месте:    
  p:=1;
  while n>=1 do begin // организуем цикл ПОКА число не станет меньше единицы (в цикле мы будем отрезать от него по две цифры)
    p:=p*(n mod 10); // произведение умножаем на последнюю цифру числа (остаток от деления числа на 10)
    n:=n div 100; // отрезаем от числа 2 последние цифры. (в последней итерации цикла оно примет вид 0,0х, т.е. будет больше 0, но меньше 1)
  end;
  writeln;
  writeln ('Произведение цифр,которые расположены на нечётных позициях, = ',p);
  
end.

--------------------------------------
Проимер:

Введите число: -2323
Произведение цифр,которые расположены на нечётных позициях, = 4

(3.5k баллов)