Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Вопросы по задачам на С++

Ответить
Настройки темы
C/C++ - Вопросы по задачам на С++

Аватара для Prof

Пользователь


Сообщения: 64
Благодарности: 2


Конфигурация

Профиль | Отправить PM | Цитировать


Доброго времени суток, ув. форумчане! Создал себе отдельную тему так как прогнозирую решать много задачек на С++
Подскажите, как реализовать такую задачку, ато чтото никак не могу допереть:

Условие
Пусть n — любое натуральное число, а последовательность i1, i2, ... , in сожержит все натуральные числа от 1 до n включительно. Нарушением порядка в такой последовательности называют систему таких двух неравенств, что оправдываются: j < k и ij > ik. Если последовательность возрастает, то количество нарушений порядка равно 0. Если последовательность спадает, то такое количество равно n(n – 1)/2. Во всех остальных случаях это количество расположена между указанными величинами.

Задание
Установите четность количества нарушений порядка последовательности.

Входящие данные
В первой строке входного файла указано количество последовательностей m. Каждый из следующих m строк содержит натуральное число n и последовательность различных натуральных чисел от 1 до n включительно: i1, i2, ... , in при 2 ≤ m ≤ 100, 2 ≤ n ≤ 1 048 576. У 50 % тестов n ≤ 4096.

Исходящие данные
Единственная строка выходного файла должна содержать число в шестнадцатеричной системе счисления, соответствующее двоичному числу которое образовано из m символов - нулей или единиц - без пробела: k-й символ строки - это остаток от деления на 2 числа нарушений порядка k-й последовательности, заданной (k + 1)-й строкой входного файла.

Пример
input.dat:
5
3 1 2 3
3 2 3 1
3 1 3 2
4 2 3 4 1
4 3 4 1 2
output.sol:
6
Объяснение: (00110)2 = (6)16

Отправлено: 21:12, 17-10-2011

 

Аватара для Hector

Misanthrope


Сообщения: 474
Благодарности: 38

Профиль | Отправить PM | Цитировать


Цитата Prof:
как прогнозирую решать много задачек на С++ »
крут, вот только ожидает тебя сюрприз, на этом форуме решать для тебя будешь только ты
по сути - где попытки собственного решения?

-------
Information must be free!
Нет границ, есть только препятствия


Отправлено: 22:14, 17-10-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Prof

Пользователь


Сообщения: 64
Благодарности: 2

Профиль | Отправить PM | Цитировать


Hector, я и не прошу уже готовое решение, я прошу только идею и прекрасно понимаю что готовенькое ждать не стоит
я вобщето планирую только спрашивать то что непонятно, а не трубить "Помогите! Сделайте!"
а тему создал, потомучто как писалось выше "прогнозирую решать много задачек на С++" и на каждную мелочь по задачке- отдельная тема? только буду засорять форум.
я не понимаю, почему Вы так сразу категорично настроены против меня, я же не прошу уже готовые коды решений

Последний раз редактировалось Prof, 17-10-2011 в 22:28.


Отправлено: 22:20, 17-10-2011 | #3


Аватара для lxa85

Необычный


Contributor


Сообщения: 4463
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


Prof, как вы правильно выразились,
Цитата Prof:
я прошу только идею и прекрасно понимаю что готовенькое ждать не стоит »
Только идей ждем мы. Или идей, или попыток решить, или рассуждений вслух. Схемок, чертежей, всего чего угодно, помимо "голого" исходного задания.
--
Почитай, поразмышлял. В чем возникла проблема?
Задача в достаточной степени линейна. Надо только внимательно отнестись к переменным,и правильно понять, что ожидается на выходе. Все необходимое расписано уже в условии.
--
А кстати, ради интереса. Попробуй составить алгоритм используя "нарезку слов и цитат" из задания.

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)


Отправлено: 22:59, 17-10-2011 | #4


Аватара для Prof

Пользователь


Сообщения: 64
Благодарности: 2

Профиль | Отправить PM | Цитировать


Сделал через сортировку, то есть сколько раз переставило соседние числа, столько и нарушений. Осталось только перевести из dec в hex.
Двоичный код получаю вот таким циклом:
Код: Выделить весь код
for(i=1;i<=y;i++) 
сout<<b[i];
Каким образом результат этого цикла можно занести в одну переменную?

Updated: сделал, кому интересно:
Код: Выделить весь код
for(i=y;i>=1;i--) 
{
   s=s+b[i]*c;
   c=c*10;
}

Последний раз редактировалось Prof, 22-10-2011 в 22:25.


Отправлено: 17:11, 20-10-2011 | #5


Аватара для Prof

Пользователь


Сообщения: 64
Благодарности: 2

Профиль | Отправить PM | Цитировать


Ещё один вопрос. Есть такая программка для переведения из 2 системы счисления в 16:
Код: Выделить весь код
#include <stdio.h>
#include <conio.h>
int main () 
{
    char c;
    int result=0;
    while(scanf("%c",&c) ) {
        if( (c<'0') || (c > '1') ) break;
        result<<=1;
        result+=c-'0';
    };
    printf("\n%d",result);
}
Но мне надо что б переменная не вписывалась с клавиатуры, а бралась из кода. Пробовал переписать, получилось чтото такое (нерабочее):
Код: Выделить весь код
#include <stdio.h>
#include <iostream>
using namespace std;
char c;
int result=0;
int _tmain (char c) 
{
    while(c!=0) {
        if( (c<'0') || (c > '1') ) break;
        result<<=1;
        result+=c-'0';
    };
}
void p()
{
 _tmain(c=110);
 cout<<result;
}

Последний раз редактировалось Prof, 23-10-2011 в 14:28.


Отправлено: 22:24, 22-10-2011 | #6


Аватара для lxa85

Необычный


Contributor


Сообщения: 4463
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


Prof, а можно спросить?
а вот это
Цитата Prof:
void p() »
что такое?
Конкретно вот это:
void ? Что це за зверь?

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)


Отправлено: 22:55, 22-10-2011 | #7


Аватара для Prof

Пользователь


Сообщения: 64
Благодарности: 2

Профиль | Отправить PM | Цитировать


lxa85, я конечно чайник, но насколько понимаю это спецификатор типа который не возвращает значения (не требует return).

Отправлено: 12:07, 23-10-2011 | #8


Аватара для ferget

Разный


Сообщения: 1294
Благодарности: 359

Профиль | Отправить PM | Цитировать


Цитата Prof:
_tmain(c=110); »
особенно понравилось

скачайте учебник для начинающих

Отправлено: 12:36, 23-10-2011 | #9


Аватара для lxa85

Необычный


Contributor


Сообщения: 4463
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


Цитата Prof:
насколько понимаю это спецификатор типа который не возвращает значения »
И что из этого следует?
В каком месте программы мы должны получить результат?
----
Посмотрел на код еще раз. Я его не понимаю, чисто зрительно в нем есть ошибка.
Какие-то resultы, какие-то _tmain, циклы while вообще не понятно что делает.
Как это все вообще должно работать?

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

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)


Отправлено: 13:27, 23-10-2011 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Вопросы по задачам на С++

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Вопросы по DNS Guest Сетевые технологии 10 05-05-2013 14:29
Прочее - Вопросы по wi-fi Aleks_267 Сетевое оборудование 2 15-09-2009 13:24
Вопросы от ВикторииС. ВикторияС Видео и аудио: обработка и кодирование 33 18-03-2009 10:22
Вопросы о RunOnceEx Necrolog Автоматическая установка Windows 2000/XP/2003 5 28-02-2006 22:11
PROXY-сервера ---- вопросы, вопросы, вопросы Galosh Хочу все знать 2 09-07-2003 00:57




 
Переход