11 FreeBASIC - задачки

20 дней назад

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

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

Палиндром - это число(слово) которое читается одинаково как справа налево и слева направо. "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

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

✅🤙 🚀

32
  ·  20 дней назад

Сюда приплывал Моби Дик

70
  ·  19 дней назад

Ваш пост поддержали следующие Инвесторы Сообщества "Добрый кит":
cats, spinner, t3ran13, boddhisattva, aim, ianboil, analise, francisgrey, mishka, sergiy, vako, gildar, andrvik, max-max, kanenakat, oleg257, zoss, dimarss, kilobucks, ohlamoon, shuler, dany2323, maksina, zlody, dr-boo, arsar, volv, vasilisapor2, nefer, turkish-r, renat242, markvial, vict0r, lira, gryph0n, voltash, ladynazgool, karusel1, sharps, cepera, francesco, exan, retoldname, stranniksenya, alikssandra, gapel, galerina, acidgarry, borisss, candy777, virt, optimist, tatyanamishenko, yurchello, amelina.elena, dayver, bammbuss, dmitrijv, manavendra, mr-nikola, ondantr, nerengot, dim447, vladsm, mirgais, varja, upper, prifix, mp42b, abloud, foxycat, ksantoprotein, process, chugoi, nikulinsb, shafarevich, d0z4t0r, tulencha, kito-boy, vsebudethorosho, nikitosuna, konstab, izbushka, astramar, cryptovisitor, zelivsky, html, vredinka2345, carpe-diem, makcl, marina-spring, azarovskiy, funt33, samael27, kalter, maksh, mister-omortson, nightinga1e, apnigrich, siddxa, cryptobandera, doublingseason, photofreediver, maryatekun, lologom, anykeycheg, prezza, akva22, esperos, elcpa, karabum, sevaev, dobrotanya, boliwar, veta-less, irkinmick, archual, alexxela, cryptenthusiast
Поэтому я тоже проголосовал за него!


dobryj.kit теперь стал Делегатом! Ваш голос важен для всего сообщества!!!
Поддержите нас: