• Предмет: Информатика
  • Автор: KarimHoroshist
  • Вопрос задан 8 лет назад

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

Ответы

Ответ дал: APALoff
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.

Ответ дал: Аноним
0
Функции я думая они ещё не проходили (в принципе как и case)
Ответ дал: APALoff
0
все возможно, но писать совсем элементарщину, которую можно заменить короткой рекурсией у меня рука не поднялась... так что твой вариант в данном случае считаю лучшим
Ответ дал: APALoff
0
хотя я его не проверял, но надеюсь все верно
Ответ дал: Аноним
0
Я проверил (всё работает)
Ответ дал: Аноним
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.
Вас заинтересует