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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.06.2018, 17:32   #1
oqi
 
Регистрация: 26.06.2018
Сообщений: 7
По умолчанию Помощь по задаче на c++

Дана монотонная последовательность, в которой каждое натуральное число k встречается ровно k раз: 1, 2, 2, 3, 3, 3, 4, 4, 4, 4, ... По данному натуральному n выведите первые n членов этой последовательности. Попробуйте обойтись только одним циклом for.

Не могу понять, как сделать это через один цикл, помогите пожалуйста
oqi вне форума Ответить с цитированием
Старый 26.06.2018, 17:50   #2
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Не совсем понятна задача.
То есть, исходная последовательность выглядит так:
1, 2, 2, 3, 3, 3, ..., (m, m, m,..., m) - последняя группа повторятся m раз?

Цитата:
Сообщение от oqi Посмотреть сообщение
По данному натуральному n выведите первые n членов этой последовательности
Всё-таки n членов или n групп? Что здесь понимается под членом последовательности?
Например, для такой последовательности: 1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 5 при n=3 что должно быть?
1, 2, 2 ИЛИ 1, 2, 2, 3, 3, 3?
Вадим Мошев вне форума Ответить с цитированием
Старый 26.06.2018, 18:30   #3
oqi
 
Регистрация: 26.06.2018
Сообщений: 7
По умолчанию

1, 2, 2, 3, 3, 3

Я вот сделал чтоб 1, 2, 2, но мне не так нужно
Код:
int main() 
{

	int n = 0, k = 1, j = 1;
	cout << "Vvedite n: ";
	cin >> n;
	for (int i = 0; i < n; ++i) 
	{
		cout << k << " ";
		if (j == k) 
		{
			++k;
			j = 1;
		}
		else 
		{
			++j;
		}
	}
	system("pause");
	return 0;
}
Пожалуйста, оформляйте Ваш код согласно правилам.

Чтоб добавить что-то к своему сообщению, используйте кнопку "Правка", а не пишите несколько сообщений подряд.

Последний раз редактировалось Вадим Мошев; 26.06.2018 в 18:53.
oqi вне форума Ответить с цитированием
Старый 26.06.2018, 20:53   #4
Cuprum5
Форумчанин
 
Регистрация: 09.05.2017
Сообщений: 735
По умолчанию

Код:
//Example program
#include <iostream>
#include <string>
using namespace std;

int main() 
{

	int n = 0, i, Counter = 0;
	cout << "Vvedite n: ";
	cin >> n;
	for(i = 1; i <= n; i++) 		
	    for(Counter = 1; Counter <= i; Counter++)	    
		    cout << i << " ";    		    	
	system("pause");
	return 0;
}
cpp.sh/6fhzg
Напишу программу на C++ и Asm для AVR. Черчение: sergeisky@yahoo.com.
Cuprum5 вне форума Ответить с цитированием
Старый 26.06.2018, 21:02   #5
Cuprum5
Форумчанин
 
Регистрация: 09.05.2017
Сообщений: 735
По умолчанию

Ваш способ:
Код:
//Example program
#include <iostream>
#include <string>
using namespace std;

int main() 
{

	int n = 0, k = 1, i, j = 1;
	cout << "Vvedite n: ";
	cin >> n;
	for(i = 0; i < n; ++i) 
	{
	    for(;;) 
	    {
	    	cout << k << " ";
	    	if (j == k) 
    		{
    			k++;
	    		j = 1;
	    		break;
    		}
    		else 
    		{
    			j++;
    		}
	    }
	}
	system("pause");
	return 0;
}
http://cpp.sh/354to
:D
Напишу программу на C++ и Asm для AVR. Черчение: sergeisky@yahoo.com.
Cuprum5 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помощь по задаче на Prolog alexboliam Помощь студентам 1 11.10.2017 07:55
Помощь в задаче Semyon++ Общие вопросы C/C++ 0 05.12.2016 19:15
С и С++. Помощь в простейшей задаче VikkyVi Помощь студентам 1 02.04.2016 17:10
нужна помощь в задаче с массивами frefres Помощь студентам 1 16.12.2009 21:59