941. Разность

 

Найти разность между произведением и суммой цифр трехзначного числа.

 

Вход. Одно трехзначное число (положительное или отрицательное).

 

Выход. Разность между произведением и суммой цифр заданного числа.

 

Пример входа

Пример выхода

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)