Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Программирование на C / C++


РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты в разделе

Gluck
Статус: 10-й класс
Рейтинг: 461
∙ повысить рейтинг »
mklokov
Статус: 8-й класс
Рейтинг: 179
∙ повысить рейтинг »
solowey
Статус: Бакалавр
Рейтинг: 151
∙ повысить рейтинг »

∙ С / С++

Номер выпуска:1973
Дата выхода:17.12.2019, 12:15
Администратор рассылки:Андрей Кузнецов aka Dr_Andrew (Старший модератор)
Подписчиков / экспертов:51 / 38
Вопросов / ответов:3 / 12

Консультация # 162519: Здрасти! Помогите решить задачи пожалуйста!!! Делимость на 7 Требуется определить делимость на 7 ряда целых чисел, записанных в двоичной системе счисления. Входные данные В первой строке входного файла INPUT.TXT содержится N – количество чисел (N < 50). В следующих N строках содержатся двоичные числа (по одному в ...
Консультация # 28256: Уважаемые эксепрты! Дайте пожалуйста ответ на глупый вопрос. Решил познакомиться с C++ и поставил Visual C++ 6. При запуске простейшего консольного приложения вместо кирилицы отбражается какая-то билиберда. Что надо сделать, чтобы русские символы рисовались правильно? В самой IDE все нормально. А также подскажите, где в этой среде найти командную с...
Консультация # 36951: Здравствуйте. Как в Си строковой переменной присвоить пустое значение? Аналог, как в Паскале например VSPData=\'\'; а в Си VSPData=\'\'; - выдает ошибку....

Консультация # 162519:

Здрасти!
Помогите решить задачи пожалуйста!!!

Делимость на 7


Требуется определить делимость на 7 ряда целых чисел, записанных в двоичной системе счисления.
Входные данные

В первой строке входного файла INPUT.TXT содержится N – количество чисел (N < 50). В следующих N строках содержатся двоичные числа (по одному в каждой строке). Каждое двоичное число состоит не более чем из 1000 цифр.
Выходные данные

Выходной файл OUTPUT.TXT должен содержать N строк. Для каждого теста в отдельной строке надо выдать сообщение “Yes”, если соответствующее число кратно 7 или “No” в противном случае.
Примеры:
1.input.txt:
3
1110
1010101
111111111111111111111111111
output.txt:
Yes
No
Yes
2. input.txt:
1
11
output.txt:
No

Ещё одна задача:

Количество делителей


Пусть х — натуральное число. Назовем у его делителем, если 1 <= у <= х и остаток от деления х на у равен нулю. < br>
Задано число х. Найдите количество его делителей.
Входные данные

Входной файл INPUT.TXT содержит заданное число x (1 <= x <= 1018). Все простые делители числа x не превосходят 1000.
Выходные данные

В выходной файл OUTPUT.TXT выведите ответ на задачу.
Примеры:
1. input.txt: 12
output.txt: 6
2. input.txt: 239
output.txt: 2

СПАСИБО!!! smile

Дата отправки: 16.03.2009, 18:58
Вопрос задал: Sahib Ruziboev Abdugaffarovich
Всего ответов: 1
Страница онлайн-консультации »


Консультирует Micren:

Здравствуйте, Sahib Ruziboev Abdugaffarovich!
Решение 1й задачи:

#include <limits>
#include <fstream>
#include <string>

using namespace std;

bool calc(string str)
{
	while(str.length()%3)str='0'+str;
	unsigned int sum=0;
	for(string::iterator it=str.begin();it!=str.end();)
	{
		sum+=*it++*4+*it++*2+*it++;
	}
	return !(sum%7);
}

int main()
{
	ifstream in("INPUT.TXT");
	ofstream out("OUTPUT.TXT");
	unsigned int N;
	in>>N;
	in.ignore(numeric_limits<streamsize>::max(),'\n');
	while(N--)
	{
		string str;
		getline(in,str);
		out<<(calc(str)?"Yes":"No")<<endl;
	}
	return 0;
}

Консультировал: Micren
Дата отправки: 16.03.2009, 20:49
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 28256:

Уважаемые эксепрты! Дайте пожалуйста ответ на глупый вопрос. Решил познакомиться с C++ и поставил Visual C++ 6. При запуске простейшего консольного приложения вместо кирилицы отбражается какая-то билиберда. Что надо сделать, чтобы русские символы рисовались правильно? В самой IDE все нормально. А также подскажите, где в этой среде найти командную строку запуска компилятора. К сожалению книги по Visual C++ пока не смог найти. Ваще проблема:(

Дата отправки: 24.10.2005, 23:01
Вопрос задал: Domian
Всего ответов: 5
Страница онлайн-консультации »


Консультирует azat:

Здравствуйте, Domian!

http://sources.ru/cpp/tips/ruschar_in_console.shtml

Консультировал: azat
Дата отправки: 24.10.2005, 23:28
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует igor87:

Здравствуйте, Domian!
Все потому что в Visual C++ кодировка ср1251, а в консоли 866-я. Самое простое взять редактор с 866 кодировкой и переписать в нем все, что на русском, а потом скомпилировать в Visual.

Консультировал: igor87
Дата отправки: 25.10.2005, 10:35
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует korsar (Специалист):

Здравствуйте, Domian!
Используй функцию CharToOEM

Приложение:

Консультировал: korsar (Специалист)
Дата отправки: 25.10.2005, 18:34
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Bob Johnson:

Здравствуйте, Domian!
вариантов несколько:
1. Выводить в консоль в юникоде (WriteConsoleW или WriteFileW, например).
2. Перекодировать символы перед выводом в кодировку 866 (CharToOem).
3. Писать только на английском.
Функция SetConsoleOutputCP у меня почему-то не работает, так что ее использовать смысла нет.
VC++ использует компилятор cl.exe. Простейший его запуск:
cl.exe 1.cpp

Консультировал: Bob Johnson
Дата отправки: 25.10.2005, 22:32
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует estiGi:

Здравствуйте, Domian!
Насчет консоли посмотри здесь, проблема описывается достаточно подробно:
http://www.rsdn.ru/article/qna/ui/concp.xml
Насчет второго непонятно. Ты имеешь в виду как передать агрументы в приложение в дебаге? В свойствах проекта - Debugging -> Command Arguments.
Если просто запустить компилятор через консоль - находишь cl.exe и запускаешь...
Параметры можно найти в МСДН

Консультировал: estiGi
Дата отправки: 26.10.2005, 00:03
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 36951:

Здравствуйте.
Как в Си строковой переменной присвоить пустое значение?
Аналог, как в Паскале например VSPData=\'\';
а в Си
VSPData=\'\'; - выдает ошибку.

Дата отправки: 07.03.2006, 13:27
Вопрос задал: Александр_10289
Всего ответов: 6
Страница онлайн-консультации »


Консультирует EPDSota:

Здравствуйте, Александр_10289!

Один из способов:
VSPData[0]=0;

Консультировал: EPDSota
Дата отправки: 07.03.2006, 13:32
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Straight:

Здравствуйте, Александр_10289!

VSPData=""
Но вообще-то все зависит от того, какой реализацией строк Вы пользуетесь.

Консультировал: Straight
Дата отправки: 07.03.2006, 13:36
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Jadd:

Здравствуйте, Александр_10289!
Никого не слушайте. Вариант VSPData[0]=0; даст присвоение первому символу 0, в то время как нужно обнулить строку. Так вот. Делается это функцией memset. Теперь давайте определимся что нужно - обнулить строку (т.е. стереть содержимое, но память останется выделенной) или удалить содержимое вместе с занимаемой областью?
В первом случае просто делаем memset(&VSPData, 0, sizeof(VSPData)); Можно еще VSPData = (char *) realloc(VSPData, 0); тут еще и размер блока данных урежется до нуля.

Если нужно еще и память освободить, тогда delete [] VSPData; VSPData = NULL;

Примерно так.

Консультировал: Jadd
Дата отправки: 07.03.2006, 13:44
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Ataman N. N.:

Здравствуйте, Александр_10289!
В С нужно писать VSPData="";. В С строковая переменная (вернее значение) заключается в кавычки, а не в апострофы.

Консультировал: Ataman N. N.
Дата отправки: 07.03.2006, 17:29
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Mamont0001:

Здравствуйте, Александр_10289!

VSPData="";

В Си в ходу двойные кавычки.

Консультировал: Mamont0001
Дата отправки: 07.03.2006, 17:57
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует RedDevil:

Здравствуйте, Александр_10289!
Функция strcpy() для этого существует.

Приложение:

Консультировал: RedDevil
Дата отправки: 08.03.2006, 08:14
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Оценить выпуск | Задать вопрос экспертам

главная страница  |  стать участником  |  получить консультацию
техническая поддержка

Дорогой читатель!
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно!
МЫ РАБОТАЕМ ДЛЯ ВАС!


В избранное