Найти разность
между произведением и суммой цифр трехзначного числа.
Вход. Одно трехзначное число (положительное или отрицательное).
Выход. Разность между
произведением и суммой цифр заданного числа.
Пример
входа |
Пример
выхода |
198 |
54 |
элементарная математика
Анализ алгоритма
Пусть n – входное число. Пусть a – число его сотен, b – число его десятков, c – число единиц. Тогда ответом будет
значение a * b * c – (a + b
+ c).
Реализация алгоритма
Читаем значение n, вычисляем его модуль.
scanf("%d",&n);
if (n < 0) n = -n;
Выделим из числа
n количество сотен a, десятков b и единиц с.
a = n / 100;
b = (n / 10) %
10;
c = n % 10;
Вычисляем и выводим ответ.
res = a * b * c
- (a + b + c);
printf("%d\n",res);
Реализация с форматированным вводом
Первым символом
может быть минус, прочитаем его. Если минуса нет, то в ch ничего не прочитается.
#include <stdio.h>
int a, b, c, res;
char ch;
int main(void)
{
scanf("%[^0-9]",&ch);
scanf("%1d%1d%1d",&a,&b,&c);
res = a * b * c - (a + b + c);
printf("%d\n",res);
return 0;
}
Java реализация
import java.util.*;
public class Main
{
public static void main(String[] args)
{
Scanner con = new Scanner(System.in);
int n = con.nextInt();
if (n <
0) n = -n;
int a = n / 100;
int b = (n / 10)
% 10;
int c = n % 10;
int res = a * b * c - (a + b + c);
System.out.println(res);
con.close();
}
}
Python реализация
n = int(input())
if n < 0: n = -n
a = n // 100
b = (n // 10) % 10
c = n % 10
res = a * b * c - (a
+ b + c)
print(res)