Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.06.2014, 23:03   #1
TF6Face
Новичок
Джуниор
 
Регистрация: 25.06.2014
Сообщений: 3
Вопрос Поиск первых 15 чисел (C++)

Поиск первых 15 чисел делящихся на 19 без остатка в интервале, левая граница которого 100.
Цитата:
int a=100/19+1;
for(int i=a; i<a+15; i++)
cout<<i*19 <<endl;
system("pause");
Объесните пожалуйста как работает эта программа. a=6? i<15+6? не могу врубится
TF6Face вне форума Ответить с цитированием
Старый 26.06.2014, 05:09   #2
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,680
По умолчанию

Я откровенно говоря не могу понять, что вы пытались сделать... Хорошо, что пытались.
Я бы Вам посоветовал сделать так...
Код:
#include <iostream>

using namespace std;

int main() {
	const int leftBorder = 100;		// Левая граница
	int N = 15;				// Количество чисел, которые необходимо найти (первые 15 чисел)
	int number = 19;			// Число на которое делить...
	int count = 0;				// Счетчик

	for(int i = leftBorder; count != N; i++) {
		if(i % number == 0) {		// Если при деление на 19, остаток от деления 0, то
			cout << " " << (count + 1) << " - " << i << endl;
			count++;		// Увеличить счетчик на 1
		}			
	}
	cout << endl;
	return 0;
}
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!

Последний раз редактировалось Bugrimov; 26.06.2014 в 07:38.
Bugrimov вне форума Ответить с цитированием
Старый 26.06.2014, 08:44   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Bugrimov, весь парадок ситуации в том, что у автора топика РАБОЧИЙ код.
При этом этот код намного оптимальнее банального перебора всех чисел (примерно в 19 раз эффективней


to TF6Face
Цитата:
Сообщение от TF6Face
Объесните пожалуйста как работает эта программа. a=6? i<15+6? не могу врубится
суть в том, что мы с помощью простой операции целочисленного деления находим число, которое при умножении на 19 даёт нам число больше 100 (как и требуется в задаче). Разумеется, если любое целое число умножить, скажем, на 19, то полученное произведение будет кратно 19 (исходя из критериев кратности!).
Ну а дальше просто. Нужно взять 15 чисел (задано по условию задачи) подряд и умножить их на 19.

Вот Вы таблицу умножения знаете? Представьте, что Вам нужно вывести таблицу умножения на 19, начиная с числа 6...
6 * 19 = 114
7 * 19 = 133
....
20 (это 6+14) * 19 = 380

вот 15 чисел 114, 133, 152 .... 361, 380 и будут выведены.

Теперь понятно?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 26.06.2014, 08:54   #4
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

А почему он с 6-ти начинает, а не с 1? Или ему нужно в обратном порядке?
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 26.06.2014, 09:06   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

5*19=95<100
Чего начинать с 1?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 26.06.2014, 09:29   #6
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

То есть 19*n должно быть обязательно больше 100? Просто я задание не вкурил.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 26.06.2014, 09:30   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Utkin
А почему он с 6-ти начинает
так в условии же сказано:
Цитата:
...в интервале, левая граница которого 100.
поэтому числа менее 100 нас не интересуют!

Цитата:
Сообщение от Utkin
То есть 19*n должно быть обязательно больше 100? Просто я задание не вкурил.
нужно найти все числа, кратные 19 (ну это те, которые делятся на 19 без остатка) в интервале от 100 и более.
поэтому, например, число 19 не подходит, оно, хоть и кратно 19, но не входит в нужный интервал.
число 95 тоже не подходит по той же причине.
а вот число 114 подходит - оно и кратно 19 и входит в числовой интервал, начинающийся от 100 (т.к. 114 больше 100)
вот и нужно найти 15 первых чисел, которые делятся на 19 и больше 100.

Так понятнее?!

Последний раз редактировалось Serge_Bliznykov; 26.06.2014 в 09:34.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 26.06.2014, 10:03   #8
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Ага
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 26.06.2014, 10:41   #9
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,680
По умолчанию

Цитата:
Сообщение от Utkin Посмотреть сообщение
То есть 19*n должно быть обязательно больше 100? Просто я задание не вкурил.
Не вы один... Я тоже
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Старый 26.06.2014, 11:11   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Bugrimov Посмотреть сообщение
Не вы один... Я тоже
Но это Вам не помешало написать код, который корректно данную задачу решает!
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сто первых простых чисел(Pascal) <Slavs> Помощь студентам 4 07.12.2015 12:29
сумма первых n чисел в массиве Kukurudza Общие вопросы C/C++ 4 11.12.2011 19:51
Найдите 100 первых простых чисел. Lovegood Паскаль, Turbo Pascal, PascalABC.NET 2 27.10.2011 19:51
Создать файл целых чисел с данным именем и записать в него N первых положительных четных чисел prelest' Паскаль, Turbo Pascal, PascalABC.NET 4 01.06.2011 10:27
превышает ли 270 произведение первых m чисел от 1 до n Кажымурат Помощь студентам 2 31.03.2011 21:11