Условие задачи: Написать программу, которая печатает TRUE или FALSE в зависимости от того, выполняются или нет указанные условия. Определить, равен ли квадрат заданного трехзначного числа кубу суммы его цифр.
(Язык Pascal)
Сложность: легкая.
Решение задачи
Для начала продумаем наше решение, сначала мы сосчитаем квадрат нашего числа, потом мы разобьём число на цифры, их сложим, посчитаем куб, а потом уже сравним результаты.
- Для того чтобы решить задачу нам понадобятся следующие переменные:
- Переменная number — для нашего числа.
- Переменная kvadr — для квадрата нашего числа.
- Переменные n1, n2, n3 — для цифр нашего числа, из которых мы получим сумму и найдем куб.
- Переменная kyb — для куба нашего числа.
- Переменная res — для True или False, результат вообщем.
Начнем мы с каркаса нашей программы
1
2
3
4
5
6
7
|
var number, kvadr, n1, n2, n3 : integer ; res : boolean ; kyb : real ; begin write ( 'Введите трехзначное число : ' );readln(number); end . |
Тут мы объявили все переменные и попросили пользователя ввести число. Дальше найдем квадрат нашего числа, делается это с помощью специальной функции sqr():
Пишем:
1
|
kvadr := sqr(number); |
Теперь у нас есть квадрат числа, т.е. если у нас переменная number равна 111, в переменной kvadr будет 111*111.
Дальше нам надо найти куб суммы цифр, для этого надо сначала найти все цифры. Тут нам помогут операции mod и div, подробнее про них читайте (тут).
Пишем:
1
2
3
|
n1 := number mod 10 ; // нашли 3-ю цифру n2 := number div 10 mod 10 ; // нашли 2-ю цифру n3 := number div 100 ; // нашли 1-ю цифру |
Если не понятно как это сделано, еще раз повторюсь читайте статью (тут).
Теперь чтобы у нас есть все цифры. Для того чтобы возвести число в куб нам поможет функция power():
Пишем:
1
|
kyb := power(n1+n2+n3, 3 ); |
Сначала сумма трех цифр, а потом указали степень. Ну а теперь осталось сравнить эти два числа, пишем вот так:
1
|
res := (kvadr=kyb); |
Т.е. мы переменной res присваиваем результат сравнения. Теперь у нас в res будет либо True либо False.
Всё решение задачи Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
var number, kvadr, n1, n2, n3 : integer ; // объявляем переменные res : boolean ; // объявляем переменные kyb : real ; // объявляем переменные begin write ( 'Введите трехзначное число : ' );readln(number); // вводим число kvadr := sqr(number); // ищем квадрат числа n1 := number mod 10 ; // ищем 3-ю цифру, т.е. если число 123 , то ищем 3 n2 := number div 10 mod 10 ; // ищем 2-ю цифру n3 := number div 100 ; // ищем 1-ю цифру kyb := power(n1+n2+n3, 3 ); // ищем куб res := (kvadr=kyb); // сравниваем writeln (kvadr, ' | ' , kyb: 3 : 0 ); // для наглядности выведем получившиеся числа writeln (res); // выводим результат end . |