Найти сумму и произведение цифр случайного трехзначного числа на языке C
Задача. Сгенерировать случайное трехзначное целое число. Найти сумму и произведение его цифр.
Пояснение. В языке программирования C функция rand()
генерирует случайное целое число от 0 до определенной целочисленной константы, весьма большое значение которой задано в заголовочном файле stdlib.h
(подробнее в уроке "Случайные числа в Си").
Алгоритм решения задачи:
- Выражение
rand() % 900
вернет любое число от 0 до 899 включительно (т.е. остаток от деления на 900). Если прибавить 100, то получим любое число от 100 до 999. Числовой промежуток [100, 999] охватывает все возможные трехзначные числа. - Первая цифра числа извлекается делением нацело на 100. В языке C целочисленное деление не имеет специального знака, оно применяется автоматически, если оба операнда целые числа.
- Последняя цифра числа представляет собой остаток от целочисленного деления на 10.
- Средняя цифра числа извлекается в два этапа. Сначала избавляются от последней цифры, деля нацело на 10, а затем находят остаток от деления на 10.
Исходный код решения задачи:
#include <stdio.h> #include <stdlib.h> #include <time.h> int main() { int n; // трехзначное число char a, b, c; // хранение цифр числа srand(time(NULL)); // задается зерно для случ.чисел n = rand() % 900 + 100; printf("%d\n", n); a = n / 100; b = n / 10 % 10; c = n % 10; printf("Сумма: %d\n", a + b + c); printf("Произведение: %d\n", a * b * c); }
Пример выполнения кода:
154 Сумма: 10 Произведение: 20