Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите решить задачу на С++ !!!!!!!!!!!!!

Иван Богров Ученик (173), на голосовании 3 дня назад
Помогите решить задачу на С++

Не понимаю как решить.

Напечатайте первые N чисел последовательности:
(записаны подряд одна единица, две двойки, три тройки, четыре четвёрки и т.д.).

Формат ввода

Вводится единственное натуральное число – N (1 ≤ N ≤ 1000).
Формат вывода

Необходимо вывести через пробел по порядку первые N чисел последовательности.
Пример 2
Ввод : 5
Вывод : 1 2 2 3 3
Сделать решение МАКСИМАЛЬНО простым,без массивов и векторов,желательно с факториалами!
Голосование за лучший ответ
V̲i̲s̲t̲a̲s̲t̲e̲r̲ Искусственный Интеллект (261782) 1 месяц назад
 #include  
using namespace std;

int main() {
int N;
cin >> N;

int current = 1; // текущее число в последовательности
int count = 0; // количество выведенных чисел

for (int i = 1; count < N; i++) { // цикл по каждому числу
for (int j = 0; j < i && count < N; j++) { // выводим число i i раз
cout << current << " ";
count++;
}
current++; // переходим к следующему числу
}

return 0;
}
Иван БогровУченик (173) 1 месяц назад
помоги пж решить то же самое токо условие чуть чуть другое ------Напечатайте первые N чисел последовательности:
(записаны сначала все натуральные числа с 1 до 1 включительно, потом с 1 до 2 включи-тельно, потом с 1 до 3 включительно и т.д.).
V̲i̲s̲t̲a̲s̲t̲e̲r̲ Искусственный Интеллект (261782) Иван Богров,
записаны сначала
С «начала» чего.. конца света)) или с начала каждой строки: 22 1 2 2 3 3 3 4 4 4 4 5 5 5 5 5 6 6 6 6 6 6 7
#include <iostream> int main() { int N, c = 1, k = 1; std::cin >> N; for (int i = 0; i < N; ++i, --k) { if (k == 0) { std::cout << "\n"; ++c; k = c; } std::cout << c << " "; } std::cout << "\n"; return 0; }
Андрей Высший разум (457251) 1 месяц назад
На копию вопроса копия ответа:
 #include 
using namespace std;

int main() {
int n, t = 0, v = 0;
cin >> n;
for (int i = 0; i < n; ++i) {
if (i == t) { t += ++v; }
cout << v << ' ';
}
}
Вложенный цикл не нужен, т.к. достаточно отслеживать момент перехода к следующему числу.
Василий Полубнев Просветленный (23459) 1 месяц назад
Вот совсем простой вариант. Только не с факториалом, а с рекурсией :-)
Правда, одно ограничение не добавил. Тут удаление платное, так что удалять не стану.

#include <iostream>

void print_seq(uint amt) {
if (amt>1) print_seq(amt-1);
uint dig = amt;
while (amt--) std::cout << dig << " ";
}

int main() {
uint n;
std::cin >> n;
print_seq(n);
return 0;
}
Василий ПолубневПросветленный (23459) 1 месяц назад
Вот подправленый вариант, с небольшим костылём, чтобы ограничить число мечатаемых цифр:

#include <iostream>

static int total;

void print_seq(uint amt) {
if (amt>1) print_seq(amt-1);
uint dig = amt;
while (amt-- && total-- >0) {
std::cout << dig << " ";
}
}

int main() {
uint n;
std::cin >> n;
total = n;
print_seq(n);
return 0;
}
Рустам Абдрашитов Мыслитель (8541) 1 месяц назад
 #include  

int main() {
int N;
std::cin >> N;

int currentNumber = 1, count = 1;

for (int i = 0; i < N;) {
for (int j = 0; j < count && i < N; ++j) {
std::cout << currentNumber << " ";
++i;
}
++currentNumber;
++count;
}

std::cout << std::endl;
return 0;
}
Rider64RUS Искусственный Интеллект (115741) 1 неделю назад
Скажи маме, нанять репетитора... С++ не твоё ?
Похожие вопросы