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

"Забавная игра" - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Аппроксимация.Линейная интерполяция http://www.cyberforum.ru/cpp-beginners/thread1117540.html
Здравствуйте!Помогите,пожалуйста,найти ошибку в коде.Высчитывает неверные корни. #include<iostream> #include<math.h> using namespace std; int main (void) { int i,j,m=12; double x_t,x_m={0},y={0},y_m={0},x={0},polinom,pogr,n=2,a_v={0},b_v={0},a=-4,b=2; for(i=1;i<m;i++) {
C++ Клиент-серверное приложение Не могу найти примеры клиент серверного приложения с использованием пула потоков с использование winapi функции,помогите найти книгу или статью http://www.cyberforum.ru/cpp-beginners/thread1117524.html
Поиск подстроки C++
Функция char* findPstr(char* str1, char* str2), получив строку str1, ищет в ней первую подстроку, равную строке str2. Если такая подстрока найдена, то функция через возвращаемое значение возвращает адрес найденной подстроки. Если подстрока не найдена, то функция возвращает 0. char* findPstr(char* str1, char* str2) { int s=0; for(int i = 0;str1!=0; i++) { if (str1==str2) { ...
C++ Как нарисовать график функции?
Привет всем. Учусь программированию всего пол года. И тут мне дают задание - написать программу для рисования графика функции y=x. Скажите, чтобы написать программу, нужны графические библиотеки? Я не хочу, чтоб вы писали программу за меня. Просто скажите, какую лучше библиотеку установить? И можно ли как-то обойтись без них? И последний вопрос. Библиотеку DirectX будет трудно освоить новичку?...
C++ Memcpy, buffer overflow. Может ли возникнуть ошибка в функции memcpy http://www.cyberforum.ru/cpp-beginners/thread1117493.html
Бывает ли на практике такое, что код #define size 1000; // some value int x, y; /* ... */ memcpy(y, x, (size + 1) * sizeof(int)); y = 0;вызовет ошибку в функции memcpy?
C++ Наследование Всем привет. Может кто нибудь подсказать с чего начать при создании класса для работы с файлами на подобии ostream( а точнее как правильно реализовать методы open, close,seek,read,write) и возможно ли унаследовать их от самого класса ostream? подробнее

Показать сообщение отдельно
ALEXKIRNAS
10 / 10 / 2
Регистрация: 27.06.2013
Сообщений: 151
12.03.2014, 20:52     "Забавная игра"
Есть задача:

Забавная игра
(Время: 1 сек. Память: 16 Мб Сложность: 30%)
Легендарный учитель математики Юрий Петрович придумал забавную игру с числами. А именно, взяв произвольное целое число, он переводит его в двоичную систему счисления, получая некоторую последовательность из нулей и единиц, начинающуюся с единицы. (Например, десятичное число 1910 = 1*24+0*23+0*22+1*21+1*20 в двоичной системе запишется как 100112.) Затем учитель начинает сдвигать цифры полученного двоичного числа по циклу (так, что последняя цифра становится первой, а все остальные сдвигаются на одну позицию вправо), выписывая образующиеся при этом последовательности из нулей и единиц в столбик — он подметил, что независимо от выбора исходного числа получающиеся последовательности начинают с некоторого момента повторяться. И, наконец, Юрий Петрович отыскивает максимальное из выписанных чисел и переводит его обратно в десятичную систему счисления, считая это число результатом проделанных манипуляций. Так, для числа 19 список последовательностей будет таким:
10011
11001
11100
01110
00111
10011

и результатом игры, следовательно, окажется число 1*24+1*23+1*22+0*21+0*20 = 28.

Поскольку придуманная игра с числами все больше занимает воображение учителя, отвлекая тем самым его от работы с ну очень одаренными школьниками, Вас просят написать программу, которая бы помогла Юрию Петровичу получать результат игры без утомительных ручных вычислений.

Входные данные

Входной файл INPUT.TXT содержит одно целое число N (0 <= N <= 32767).

Выходные данные

Ваша программа должна вывести в выходной файл OUTPUT.TXT одно целое число, равное результату игры.

intput 19
output 28

intput 1212
output 1938

мое решение (не проходит тест 8):
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
39
40
41
42
43
44
45
46
47
48
49
#include <iostream>
 
using namespace std;
 
int main ()
{
    freopen("input.txt","r",stdin);
    freopen("output.txt","w",stdout);
    int n, m=0, i, z, l, p, m1, rez;
    cin >> n;
    bool a[32]={0}, b[16]={0};
    m1=n;
    while(n){
        m++;
        n/=2;
    }
 
    n=m1;
    m1=m-1;
    while(n){
        a[m1--]=n%2;
        n/=2;
    }
 
    if(m==0) cout << 0;
    else{
        for(i=0; i<m; i++) a[i+m]=a[i];
 
        l=0; z=0; p=0;
        
        for(i=0; i<m*2; i++) 
            if(a[i]) l++;
            else {
                if(l>z) { z=l; p=i-l; }
                l=0;
            }
            if(l>z) { z=l; p=i-l; }
            
            m1=m-1;
            for(i=0; i<m; i++) b[m1--]=a[p++];
        
        n=1;
        rez=0;
        for(i=0; i<m; i++, n*=2) { 
            rez+=b[i]*n;
        }
        cout << rez;
    }
}
Если кто имеет идеи по решению и\или решение прошу предоставить.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 09:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru