Если число заканчивается ** 2 или 3, то исходное число умножить ** число десятков в нем,...

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

Если число заканчивается на 2 или 3, то исходное число умножить на число десятков в нем, если число единиц от 7 до 9, то из числа вычесть сумму цифр
числа, в противном случае отбросить последнюю цифру.Я в 8 классе помогите решить похоже , что это я решал )


Информатика (20 баллов) | 34 просмотров
Дано ответов: 2
0 голосов
Правильный ответ

Var 
i, n, a, b,n1: integer;
begin 
write('Введите число '); 
Readln(n); 
n1 := n; 
a := n mod 10; 
case a of   
2, 3: n := n * ((n div 10) mod 10);   
7, 8, 9:      begin        for i := 1 to length(inttostr(n)) do         begin          b := b + (n mod 10);n := n div 10; end;n := n1 - b; end;   
1, 4, 5, 6, 0: n := n div 10; 
End; 
Write(n);
end.

(2.6k баллов)
0 голосов

Примерно так, надеюсь не ошибся:
Function SumCifr(N : Integer) : Byte;
Begin
  If N>0 then SumCifr:=N mod 10+SumCifr(N div 10) else SumCifr:=0;
end;

Var A : Integer;
Begin
  Readln(a);
  Case a mod 10 of
    2,3  : a:=a*(a div 10 mod 10);
    7..9 : a:=a-SumCifr(a);
    else a:=a div 10;
  end;
  Writeln(a);
end.

(5.1k баллов)
0

Функции я думая они ещё не проходили (в принципе как и case)

0

все возможно, но писать совсем элементарщину, которую можно заменить короткой рекурсией у меня рука не поднялась... так что твой вариант в данном случае считаю лучшим

0

хотя я его не проверял, но надеюсь все верно

0

Я проверил (всё работает)