Здесь пришлось учитывать положительные и отрицательные числа, т.к. длина строки с отрицательным числом включает в себя и знак минус. Поэтому в некоторых местах программы я добавлю пояснение.
var n,p:integer; s: string; begin write ('Введите число: '); readln (n); if n<0 then n:=-n; // отрицательное число переделываем в положительное, чтобы "длина строки" ниже не получилась больше количества цифр в числе 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
public static void main(String args[]){
java.util.Scanner in = new java.util.Scanner(System.in);
String string = in.nextLine(); char chars[] = new char[4];
chars[0] = in.nextLine().charAt(0); chars[2] = in.nextLine().charAt(0);
for(int sChar = 0; sChar<string.length(); sChar++)
if(string.charAt(sChar)==chars[0])chars[1]++;
else if(string.charAt(sChar)==chars[2])chars[3]++;
System.out.print("\n"+(chars[1]==chars[3]?chars[0]+""+chars[2]:chars[1]>chars[3]?chars[0]:chars[2]));
}
}
var
n,p:integer;
s: string;
begin
write ('Введите число: ');
readln (n);
if n<0 then n:=-n; // отрицательное число переделываем в положительное, чтобы "длина строки" ниже не получилась больше количества цифр в числе
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