Форум программистов, компьютерный форум CyberForum.ru

С++ Циклы - C++

Восстановить пароль Регистрация
 
Selw
0 / 0 / 0
Регистрация: 13.12.2009
Сообщений: 4
13.12.2009, 20:40     С++ Циклы #1
Товарищи, помогите с задачкой пожалуйста. Заранее огромное спасибо.

Составить функцию, которая определяет, является ли целое число простым.
Составить функцию, которая для целого числа определяет, является ли запись этого числа в двоичной системе чередующейся последовательностью единиц и нулей.
Вызывающая функция main() вводит целое число N и среди простых чисел, не превосходящих введенного натурального числа N, находит такие, запись которых в двоичной системе счисления представляет чередующуюся последовательность единиц и нулей, и выводит их на экран.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.12.2009, 20:40     С++ Циклы
Посмотрите здесь:

Циклы C++
Циклы C++
C++ Циклы (for, while, do while)
C++ Циклы do и while
C++ Циклы
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
odip
Эксперт C++
 Аватар для odip
7225 / 3287 / 58
Регистрация: 17.06.2009
Сообщений: 14,165
13.12.2009, 22:08     С++ Циклы #2
Определение простого числа вроде даже в FAQ есть.
Остальное тоже все просто.
Selw
0 / 0 / 0
Регистрация: 13.12.2009
Сообщений: 4
13.12.2009, 22:15  [ТС]     С++ Циклы #3
определение простого числа нашел.

теперь ищу перевод из десятичной системы счисления в двоичную
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
13.12.2009, 22:35     С++ Циклы #4
Вот вывод в двоичном коде
C++
1
2
3
4
int chislo, size(sizeof(chislo)*8), i;
std::cin>>chislo;
for(i = size-1; i >= 0; --i)
    std::cout<<((chislo>>i)&1);
Selw
0 / 0 / 0
Регистрация: 13.12.2009
Сообщений: 4
13.12.2009, 23:01  [ТС]     С++ Циклы #5
M128K145, спасибо

а возможен ли перевод с помощью операций / и % (деление нацело, и остаток от деления)?

Добавлено через 14 минут
написал вот так вот:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void main (void)
 
{
int a;
cout << "Vvedite a\t";
cin >> a;
int celoe=5;
for(int i=1;celoe !=0 ;i++)
    {
    int ostatok;
    celoe = a/2;
    ostatok = a%2;
    a = celoe;
    cout << ostatok;
    }
getch();
}
но при переводе в двоичную систему счисления, остатки записываются, начиная с последнего, а у меня в коде с первого, как это исправить...
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
13.12.2009, 23:35     С++ Циклы #6
во первых весь твой велосипед можно переписать так
C++
1
2
3
4
5
int chislo = 13;
do
{
    std::cout<<(chislo%2);
}while(chislo/=2);
Во вторых - зачем замедлять алгоритм?
Ну и наконец ответ
C++
1
2
3
4
5
6
7
8
bool bin[32];
int chislo = 13, j = 31, i;
do
{
    bin[j] = (chislo%2), --j;
}while(chislo /= 2);
for(i = j + 1; i < 32; ++i)
    std::cout<<bin[i];
perchik71
 Аватар для perchik71
69 / 27 / 2
Регистрация: 08.08.2009
Сообщений: 60
13.12.2009, 23:38     С++ Циклы #7
Цитата Сообщение от Selw Посмотреть сообщение
определение простого числа нашел.

теперь ищу перевод из десятичной системы счисления в двоичную
просто

C++
1
2
char buf[64];
itoa(число,buf,2);
Selw
0 / 0 / 0
Регистрация: 13.12.2009
Сообщений: 4
13.12.2009, 23:43  [ТС]     С++ Циклы #8
M128K145, это нужно без массивов ><
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.11.2010, 20:12     С++ Циклы
Еще ссылки по теме:

Циклы C++
Циклы в С++ C++
Циклы while do.while C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
z1odey
0 / 0 / 0
Регистрация: 19.11.2010
Сообщений: 11
19.11.2010, 20:12     С++ Циклы #9
Полностью такая же задача.
Срочно.
Помогите пожалуйста.
Напишите пожалуйста код...

Добавлено через 3 минуты
Массивы использовать нельзя.
Yandex
Объявления
19.11.2010, 20:12     С++ Циклы
Ответ Создать тему
Опции темы

Текущее время: 22:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru