Помощь - Поиск - Пользователи - Календарь
Полная версия: pomogite napisat' malen'kie programmy po C++ > Информатика / Программирование
Образовательный студенческий форум > Другие дисциплины > Информатика / Программирование
Aigana
Вводится число. Напечатать YES, если оно является степенью двойки, NO - иначе.


Ввод 1 Ввод 2
8 22
Вывод 1 Вывод 2
YES NO
tig81
в чем вопрос?
Aigana
eto zada4a.. nujno napisat' programmu.

"power of 2"

doljno byt' 4to to na podobii etogo:

#include <iostream>

using namespace std;
int main()
{
double n, r;
r = 1;
cin>>n;
for(int i = 0; i<n;i++)
r = r * 2;
cout<<r;
return 0;
}

ya ploho znayu c++.. mne b s ob'yasneniyami esli ne trudno)))
граф Монте-Кристо
Вам нужен именно алгоритм, или у Вас проблемы с синтаксисом?
Aigana
dlya na4alo mne b algoritm (((
граф Монте-Кристо
Можно, например, так: в цикле проверять, если остаток от деления n на 2 равен 0, то присвоить n значение n/2 и увеличить счётчик цикла на 1, иначе, если остаток равен 1 - выход из цикла. Если в итоге получилось, что n=1, то вначале оно было степенью двойки, если другое нечётное - не было.
Sergio Ramos
Можно поизвращаться с побитовыми операциями

#include "iostream"

using namespace std;

int main () {
int n;
cin >> n;
if (!(n&(n-1))) cout << "YES";
else cout << "NO";
return 0;}

При побитовом "и" происходит перемножение значений (единиц и нулей) соответствующих разрядов в двоичной записи числа. Например, дано число 4. в двоичной сс имеет запись 100; 4 x 3 = 100 x 011 = 0 => 4 - степень 2-ки. Или еще пример, 7, в 2 сс 7 = 111. 7 х 6 = 111 x 110 = 110 = 6. 6 != 0 => 7 не степень 2-ки.
Aigana
pasib bol'woe))) graf monte kristo a vy mojete otpravit' svoi variant programmy??
граф Монте-Кристо
#include <iostream>
using namespace std;

int main()
{
int n, k;
cout<<"Enter n:"<<endl;
cin>>n;
k = n;
while(!(k%2))
k /= 2;
if (k==1) cout<<"YES"<<endl;
else cout<<"NO"<<endl;
return 0;
}
У Sergio Ramos алгоритм лучше, потому что не зависит от величины числа.
Aigana
(!(k%2)) a eto 4to zna4it?? v 4asnosti "!"??

i smojite li vy mne ob'yasnit' eto:


Вывести все простые числа от M до N включительно.

Ввод
В первой строке находятся разделённые пробелом M и N.
Вывод
Вывести числа в порядке возрастания, по одному в строке. Если между M и N включительно нет простых - вывести "Absent".
Ограничения
2 ≤ M ≤ N ≤ 300 000.
Ввод 1 Ввод 2
2 5 4 4
Вывод 1 Вывод 2
2
3
5 Absent


nu toj nado sostavit' programmu(

% <= i 4to zna4it eto?

i pojaluista opiwite programmu... mne o4 nujno((
граф Монте-Кристо
a%b - это остаток от деления a на b. ! - значит, надо произносить с выражением smile.gif Шучу. !c - это отрицание с, т.е. если с=true, (!с) = false, и наоборот.
Алгоритм простой - только сначала нужно написать функцию, которая берёт число и говорит true, если оно простое, и false, если составное. потом скармливать ей в цикле все натуральные числа от m до n, ну и завести некий счётчик их количества. если после цикла он будет равен 0 - вывести Absent.
А вот программу начинайте-ка сами составлять. Иначе никогда не научитесь программировать.

P.S.: Насчёт того, как написать функцию проверки на простоту - тоже не лишне будет подумать, не так уж это и сложно.
Aigana
spasibo vam bol'woe))))

vy mne o4 pomogli)))

mogu li ya hotya b programku kotoruyu ya sostavlyu vam na proverku prislat'????)))) biggrin.gif
граф Монте-Кристо
Да, с этим всегда пожалуйста.
Aigana
podskajite pojaluista kak mojno vyu4it' yazyk C++????? ya uje nenayu 4e delat'...
граф Монте-Кристо
Берёте книжку по С++ (я учился по Страуструпу - очень толково написано), компьютер и среду разработки, в которой можно писать программы на С++(например, Visual Studio). Читаете, разбираетесь, решаете задачки на компьютере, пишете простенькие программы.
Aigana
a kniga Shildta mojet pomo4'??? prost u menya Shildt
граф Монте-Кристо
Да, у Шилдта тоже очень хорошая книга.
Sergio Ramos
Цитата(Aigana @ 2.10.2011, 17:48) *

podskajite pojaluista kak mojno vyu4it' yazyk C++????? ya uje nenayu 4e delat'...

По ходу чтения литературы советую решать задачки по тематике, благо онлайн тестеров с архивом задач хватает.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Русская версия Invision Power Board © 2001-2024 Invision Power Services, Inc.