Перелопатил весь форум, но подобного не нашёл... однако если такая тема есть заранее извиняюсь.. Короче решил летом постичь азы Паскаля по учебнику Окулова..вроде всё шло нормально пока не дошёл до задачек на использование цикла while..
Окончательно меня ввела в тупик вот эта задача:
Определить является ли число степенью тройки... даже код не могу подкинуть, т.к. не знаю от чего начать скакать..
RathaR
2.08.2009 21:00
Цитата(Footballplayer @ 2.08.2009 16:20)
Перелопатил весь форум, но подобного не нашёл... однако если такая тема есть заранее извиняюсь.. Короче решил летом постичь азы Паскаля по учебнику Окулова..вроде всё шло нормально пока не дошёл до задачек на использование цикла while..
Окончательно меня ввела в тупик вот эта задача:
Определить является ли число степенью тройки... даже код не могу подкинуть, т.к. не знаю от чего начать скакать..
эм...а разве тут могут быть проблемы? или число "длинное"? если нет, то в цикле делишь его на 3 до тех пор пока результат не станет меньше или равным 3,тогда проверяеш, равен ли он 3, если да то диствительно степень....
Добавлено через 5 мин.
program Stepen; var I:integer; begin read(I); while I>3 do I:=I div 3;
if I=3 then write('STEPEN') else write('Ne stepen'); end.
Footballplayer
2.08.2009 21:32
Цитата(RathaR @ 2.08.2009 18:00)
эм...а разве тут могут быть проблемы? или число "длинное"? если нет, то в цикле делишь его на 3 до тех пор пока результат не станет меньше или равным 3,тогда проверяеш, равен ли он 3, если да то диствительно степень....
Добавлено через 5 мин.
program Stepen; var I:integer; begin read(I); while I>3 do I:=I div 3;
if I=3 then write('STEPEN') else write('Ne stepen'); end.
Блин.. и то правда..йоперный театр ,кажись, я нифига не подающий надежды программист, раз на таком застрял.. Благодарю )))
amega
2.08.2009 23:42
RathaR введи число 10 и тебе видаст что оно есть степенью! поменяй тип на риел и постав знак деления...
Цитата
Блин.. и то правда..йоперный театр ,кажись, я нифига не подающий надежды программист, раз на таком застрял.. Благодарю )))
Поверь, я тоже сначла не понимал, но все пришло со временем)
RathaR
3.08.2009 1:06
Цитата(amega @ 2.08.2009 19:42)
RathaR введи число 10 и тебе видаст что оно есть степенью! поменяй тип на риел и постав знак деления...
Footballplayer
3.08.2009 13:22
Цитата(amega @ 2.08.2009 20:42)
введи число 10 и тебе видаст что оно есть степенью! поменяй тип на риел и постав знак деления...
да, я так сразу сделал))
Цитата(amega @ 2.08.2009 20:42)
Поверь, я тоже сначла не понимал, но все пришло со временем)
Дай Бог чтоб и ко мне пришло.. хорошо что есть такие форумы, где могут помочь))
Lapp
4.08.2009 7:00
Цитата(amega @ 2.08.2009 20:42)
поменяй тип на риел и постав знак деления...
Я бы не рекомендовал переводить в действительный тип. Это и громоздко, и просто неправильно (если без учета точности вычислений). Можно так:
var a: LongInt;
begin ReadLn(a); while a mod 3=0 do a:=a div 3; WriteLn(a=1) end.
Добавлено через 2 мин. Кроме того, не забывайте, что единица тоже есть степень тройки.
Footballplayer
4.08.2009 20:20
всем спасибо. но уверен буду обращаться ещё
мисс_граффити
7.08.2009 2:15
Цитата(Lapp @ 4.08.2009 4:00)
Кроме того, не забывайте, что единица тоже есть степень тройки.
1/3 тоже степень тройки. и корень из 3 - степень. ;)
sheka
7.08.2009 13:49
i:=0; while exp(i*ln(3))<a do inc(i); if exp(i*ln(3))=a then ('yavlaetsa');
Вроде так тоже должно работать . Спасибо Lappу.
volvo
7.08.2009 15:17
sheka, судя по твоей программе, 81 - уже НЕ степень тройки? А чему тогда равно 34?
А ведь предупреждали: не сравнивайте вещественные числа между собой. Нет же, пока САМ не обожжется - должен попробовать.
Lapp
8.08.2009 1:47
Цитата(мисс_граффити @ 6.08.2009 23:15)
1/3 тоже степень тройки. и корень из 3 - степень. ;)
Ну, если так, то программа несколько упрощается и становится такой:
begin WriteLn(true) end.
мисс_граффити
10.08.2009 8:29
Цитата(Lapp @ 7.08.2009 22:47)
Ну, если так, то программа несколько упрощается и становится такой:
begin WriteLn(true) end.
Ты не прав ;)
Footballplayer, какая там полная формулировка задачи? Какие степени рассматриваются? Только натуральные, или целые неотрицательные?
RathaR
10.08.2009 20:15
Цитата(мисс_граффити @ 10.08.2009 4:29)
Footballplayer, какая там полная формулировка задачи? Какие степени рассматриваются? Только натуральные, или целые неотрицательные?
блин, до чего же можна усложнять задачу то ?! если человек начал проходить цыкл "While" , его задача не заключаеться в том чтобы найти все-все степени 3, а в том чтобы научиться цыкл использовать правильно чему я думаю его уже научили
Lapp
11.08.2009 10:43
Цитата(RathaR @ 10.08.2009 17:15)
блин, до чего же можна усложнять задачу то ?!
спасибо, Rathar, +1
Степенями целого неотрицательного числа испокон назывались степени с целым неотрицательным показателем, сами являющиеся целыми и неотрицательными. На этом и закончим, пожалуй.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.