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

[Длинная арифметика]Обращение к большому индексу - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Dev C++ http://www.cyberforum.ru/cpp-beginners/thread290982.html
Помогите пожалуйста решить номера задач (2 и 3) в 7 варианте! в проге Dev C++ файл приложил в виде фото...
C++ итератор скажите как в этой задачи перевести десятичное число в двоичное??? вот условие задачи!!! вот код!! main.h #include <cstdlib> #include <iostream> #include <conio.h> #include "long.h" http://www.cyberforum.ru/cpp-beginners/thread290974.html
Сумма цифр натурального числа посредством рекурсии C++
Необходимо найти сумму цифр натурального числа используя отдельную функцию с рекурсией. Пару программ писал на простое нахождение суммы цифр натурального числа, а как должно выглядеть с рекурсией - не понимаю. Помогите пожалуйста.
C++ двоичная система
перевод из десятичной в двоичную скажите как записать результат в обратном порядке!! #include <iostream> #include <string> using namespace std; void fuck(const int num, string &snum){ if (num%2==0) snum+="0";
C++ Составить программу подсчитывающую число посещений в поликлинике врачей-специалистов (отоларинголога, окулиста и хирурга) http://www.cyberforum.ru/cpp-beginners/thread290951.html
3. Составить программу подсчитывающую число посещений в поликлинике врачей-специалистов (отоларинголога, окулиста и хирурга). В конце дня выдавать итоговое сообщение. В начале работы программы должна вводиться дата, которая будет фигурировать в итоговом сообщении. Использовать множественный выбор.
C++ Составить программу для обработки результатов кросса на 500 м для женщин. Составить программу для обработки результатов кросса на 500 м для женщин. В кроссе участвует не более 100 студенток. Для каждой участнице ввести фамилию, цифр группы фамилию преподавателя, результат получить результирующую таблицу, упорядоченную по результатам, в которой содержится также информацию о выполнении нормы ГТО. Определить суммарное количество студенток, выполнивших норму ГТО. подробнее

Показать сообщение отдельно
diagon
Higher
1921 / 1187 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2

[Длинная арифметика]Обращение к большому индексу - C++

08.05.2011, 10:40. Просмотров 1242. Ответов 6
Метки (Все метки)

Бесконечная последовательность битов, предложенная Кеане, равна 001001110001001110110110001… и формируется следующим алгоритмом: вначале записывается 0, потом 001, далее 001001110, то есть, для получения следующего члена, предыдущий записывается дважды, а справа приписывается его отрицание. Элементы этого ряда являются начальными подпоследовательностями Кеане.

Требуется написать программу, которая по заданному n определит N-й бит этой последовательности.
Входные данные

Входной файл INPUT.TXT содержит число N (N <= 10^200).
Выходные данные

В выходной файл OUTPUT.TXT должен содержать найденный бит.
Я реализовал собственно эту последовательность, вроде даже работает, и завис на том, как вывести нужный элемент.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <iostream>
#include <sstream>
typedef std::string::iterator si;
short compare(std::string a, std::string b) {
    if (a.size() > b.size())
        return 1;
    if (a.size() < b.size())
        return 2;
    for (int i = 0; i < a.size(); i++) {
        if (a[i] > b[i])
            return 1;
        if (a[i] < b[i])
            return 2;
    }
    return 0;
 
}
 
int main() {
    std::string a(1, '0'), b, N;
    std::cin >> N;
    std::string size;
    while (compare(N, size) == 1) { // пока размер массива меньше N
        b = a;
        a += b;
        for (si i = b.begin(); i != b.end(); i++) //инверсия b
            if (*i == '1')
                * i = '0';
            else
                *i = '1';
        a += b;
    std::ostringstream ost;
    ost << a.size();
    size = ost.str();
    }
    //std::cout << a[N-1];
    return 0;
}
И вообще, влезет ли эта последовательность в std::string?
Если не влезет, то как тогда решается эта задача?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 14:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru