Согласие на обработку персональных данных.



04.11.2017
Новые видео и статья Функция Odd.

29.10.2017
Новые видео и статья Функция Low.

23.10.2017
Новая задача Даны натуральные числа от 1 до 33.

22.10.2017
Добавлен раздел Статьи по С/С++.

03.10.2017
Новая книга 1001 вопрос начинающего программиста.

Раздел: Задачи / Простейшие /

Найти произведение цифр заданного четырехзначного числа

Основы C++ Основы C++

C++ - это один из самых популярных языков программирования. Не важно, на каком языке программируете лично вы. Но, если вы хотя бы в общих чертах не знаете С++, то это большой пробел в вашем образовании, который надо восполнить как можно быстрее... Подробнее...

Вообще условие задачи уже озвучено в заголовке, но на всякий случай повторю.

Условие задачи

Задача 6.1.2.4
Найти произведение цифр заданного четырехзначного числа

Задача простая, но, судя по количеству запросов в Интернете, далеко не все могут решить её самостоятельно. Вам советую всё-таки попробовать это сделать. А уже потом посмотреть решение.

Как найти произведение цифр числа

Поскольку по условию число является четырёхзначным, то это сильно упрощает нам задачу. Алгоритм решения может быть, например, таким:

  1. Получить остаток от деления на 10. Это будет крайняя правая цифра числа.
  2. Получить остаток от деления на 100 и разделить результат на 10. Это будет вторая справа цифра числа.
  3. Получить остаток от деления на 1000 и разделить результат на 100. Это будет третья справа цифра числа.
  4. Выполнить целое деление на 1000. Это будет первая слева цифра числа.

По идее надо ещё проверить число, которое ввёл пользователь (если, конечно, мы предоставим ему такую возможность).

Так как число является четырёхзначным, то оно не может быть менее 1000 и более 9999. Вот это условие мы и должны проверить, прежде чем выполнять какие-то действия.

Также число может быть отрицательным. Но про знак числа в условиях задачи ничего не сказано. Поэтому будем считать, что оно положительное (в любом случае цифры числа не могут быть отрицательными, так что даже если допустить, что число будет отрицательным, то на результат это не повлияет, а придётся только добавить дополнительную проверку вхождения числа в диапазон -9999…-1000).

Ну а теперь решения на Паскале и С++.

Решение задачи 6.1.2.4 на Паскале
program multinum;

//****************************************************************
// ГЛОБАЛЬНЫЕ ПЕРЕМЕННЫЕ
//****************************************************************
var
  Num : word;   //Число
  D0  : word;   //Крайняя правая цифра числа
  D1  : word;   //Вторая справа правая цифра числа
  D2  : word;   //Третья справа цифра числа
  D3  : word;   //Крайняя левая цифра числа

//****************************************************************
// ОСНОВНАЯ ПРОГРАММА
//****************************************************************
begin
  Write('Enter a 4-digit integer : ');
  ReadLn(Num);

  //Проверить правильность ввода данных
  if (Num < 1000) or (Num > 9999) then
    begin
      WriteLn('The number must be in the range 1000...9999');
      ReadLn;
      Exit;   //Выйти, если данные неправильные
    end;

  D0 := Num mod 10;
  D1 := (Num mod 100) div 10;
  D2 := (Num mod 1000) div 100;
  D3 := (Num div 1000);

  WriteLn('The digits of number :', D3:2, D2:2, D1:2, D0:2);
  Write(D3, ' * ', D2, ' * ', D1, ' * ', D0, ' = ');
  WriteLn(D3 * D2 * D1 * D0);

  WriteLn('The end. Press ENTER...');
  ReadLn;
end.

Решение задачи 6.1.2.4 на С++
#include 
#include 

using namespace std;

//****************************************************************
// ГЛОБАЛЬНЫЕ ПЕРЕМЕННЫЕ
//****************************************************************
unsigned short int Num;  //Число
unsigned short int D0;   //Крайняя правая цифра числа
unsigned short int D1;   //Вторая справа правая цифра числа
unsigned short int D2;   //Третья справа цифра числа
unsigned short int D3;   //Крайняя левая цифра числа

//****************************************************************
// ОСНОВНАЯ ПРОГРАММА
//****************************************************************
int main(int argc, char *argv[])
{
  cout << "Enter a 4-digit integer : ";
  cin >> Num;

  //Проверить правильность ввода данных
  if ((Num < 1000) || (Num > 9999))
  {
    cout << "The number must be in the range 1000...9999" << endl;
    system("PAUSE");
    return EXIT_SUCCESS;  //Выйти, если данные неправильные
  }

  D0 = Num % 10;
  D1 = (Num % 100) / 10;
  D2 = (Num % 1000) / 100;
  D3 = (Num / 1000);

  cout << "The digits of number : ";
  cout << D3 << ' ' << D2 << ' ' << D1 << ' ' << D0 << endl;
  cout << D3 << " * " << D2 << " * " << D1 << " * " << D0 << " = ";
  cout << D3 * D2 * D1 * D0 << endl;
  
  system("PAUSE");
  return EXIT_SUCCESS;
}

Основы программирования Основы программирования

Каждый профессионал когда-то был чайником. Наверняка вам знакомо состояние, когда “не знаешь как начать думать, чтобы до такого додуматься”. Наверняка вы сталкивались с ситуацией, когда вы просто не знаете, с чего начать. Эта книга ориентирована как раз на таких людей, кто хотел бы стать программистом, но совершенно не знает, как начать этот путь. Подробнее...
Инфо-МАСТЕР ®
Все права защищены ©
e-mail: mail@info-master.su

Яндекс.Метрика