Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
sergiy
6 лет назад

11 FreeBASIC - задачки

Некоторые задачи бывает проще решить на компьютере методом грубой силы. Метод грубой силы или метод полного перебора это метод решения задачи путем перебора всех возможных вариантов. Помню случай в школе когда я после решения задачи на олимпиаде по математике решил проверить своё решение на компьютере. Задача была из класса - найти все ..значные числа у которых... Деталей я уж не помню. Вот сегодня и займёмся решением таких задач.

Найти все трёхзначные числа - палиндромы

Палиндром - это число(слово) которое читается одинаково как справа налево и слева направо. "121", "ABBA", "1001", "или".

for i=100 to 999 - перебор всех трехзначных чисел.

среди трёхзначных чисел палиндром это если первая и последняя(третья) цифры числа равны

if (int(i/100)==i mod 10) then print i;

вот и всё))

В трехзначном числе зачеркнули среднюю цифру. Полученное двузначное число оказалось в 6 раз меньше исходного. Найти такое трехзначное число

Решение этой задачи будет отличаться от предыдущей лишь условием в операторе if, а чтобы не делать его очень сложным введём ещё одну переменную (для двухзначного числа составленного из трёхзначного)

t=(i\100)*10 + (i mod 10)
if t*6=i then print i;

Выходит что такое число лишь одно - 108. Проверим 108=18*6

Какое трехзначное число равно кубу цифры его единиц, а также квадрату числа, составленного из его второй и первой цифры?

используем текст предыдущих программ

Введём в программу такие переменные:
e3 - куб цифры единиц числа;
vp2 - квадрат числа составленного из его второй и первой цифр.

e3= i mod 10: e3=e3*e3*e3
vp2=((i \ 10) mod 10)*10 + i\100

теперь запишем условие - число(i) должно быть равно и e3 и vp2
if i=e3 and i=vp2 then print i;

Найти все трёхзначные числа у которых нет одинаковых цифр

используем текст предыдущих программ
введём переменные t1 - первая цифра, t2 - вторая цифра и t3 - третья цифра числа

t1= i\100
t2=(i\10) mod 10
t3=i mod 10
if t1<>t2 and t1<>t3 and t2<>t3 then print i;

Ну и какой же программист не изменит условие задачи и не решит её иную версию...))) не захотелось изменить? значит ещё не программист)))

Найти все трёхзначные числа у которых ЕСТЬ одинаковые цифры(только две)

измениться лишь условие в операторе if
if (t1=t2 AND t1<>t3) OR (t1=t3 AND t1<>t2) OR (t2=t3 AND t1<>t2) then print i;

слишком длинное условие мжно перенести на следующую строку исспользуя знак подчёркивания _

AND - логическое умножение имеет более всокий приоритет над OR, значит вычислится раньше OR и скобки не нужны. я их поставил для того чтобы подчеркнуть что условия три.

if t1=t2 AND t1<>t3 OR t1=t3 AND t1<>t2 OR t2=t3 AND t1<>t2 then print i;

А можно было всё это расписать на три оператора if

if t1=t2 AND t1<>t3 then print i;
if t1=t3 AND t1<>t2 then print i;
if t2=t3 AND t1<>t2 then print i;

Этот вариант более лёгок как для начинающих, ну а для компьютера чреват лишними действиями. Например если первый оператор if сработал - второй и третий проверять уже не стоит, а компьютер их проверит)))

Ну а если сделать условие задачи не таким строгим и убрать требование "только две" тогда смягчится и условие в if - исчезнет проверка на неравенство и опреатор будет выглядеть так:

if t1=t2 OR t1=t3 OR t2=t3 AND t1<>t2 then print i;

Решите задачи

Найти все трехзначные числа Армстронга(числа, равные сумме кубов своих цифр)

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

Найдите все трехзначные числа, средняя цифра которых равна сумме первой и третьей цифр

10 FreeBASIC - Игра угадай число
09 FreeBASIC - случайные числа, RND
08 FreeBASIC - случайные числа, RND
07 FreeBASIC - циклы
06 FreeBASIC - условный оператор
05 FreeBASIC - первые простые задачки
04 FreeBasic - графика
03 FreeBASIC. Текстовые переменные и операции с ними
02 FreeBASIC Переменные в Бейсике
01 Начинаем изучать FreeBasic
00 FreeBASIC лучший из диалектов бейсика

@sergiy

14
509.069 GOLOS
На Golos с October 2016
Комментарии (5)
Сортировать по:
Сначала старые