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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.07.2012, 16:50   #1
Антон1305
 
Регистрация: 04.07.2012
Сообщений: 4
По умолчанию Вывод на экран потока чисел (Dev-С++)

Ребят, мне нужно вывести на экран числа от 1 до 50 без использования циклов и hard coding в С++. Как это сделать? Голову уже сломал...(
Антон1305 вне форума Ответить с цитированием
Старый 06.07.2012, 17:02   #2
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

Код:
#include <iostream>

inr main()
{
	std::cout << 1 << std::endl;
	std::cout << 2 << std::endl;
	std::cout << 3 << std::endl;
	std::cout << 4 << std::endl;
	std::cout << 5 << std::endl;
	std::cout << 6 << std::endl;
	std::cout << 7 << std::endl;
	std::cout << 8 << std::endl;
	std::cout << 9 << std::endl;
	std::cout << 10 << std::endl;
	std::cout << 11 << std::endl;
	std::cout << 12 << std::endl;
	std::cout << 13 << std::endl;
	std::cout << 14 << std::endl;
	std::cout << 15 << std::endl;
	std::cout << 16 << std::endl;
	std::cout << 17 << std::endl;
	std::cout << 18 << std::endl;
	std::cout << 19 << std::endl;
	std::cout << 20 << std::endl;
	std::cout << 21 << std::endl;
	std::cout << 22 << std::endl;
	std::cout << 23 << std::endl;
	std::cout << 24 << std::endl;
	std::cout << 25 << std::endl;
	std::cout << 26 << std::endl;
	std::cout << 27 << std::endl;
	std::cout << 28 << std::endl;
	std::cout << 29 << std::endl;
	std::cout << 30 << std::endl;
	std::cout << 31 << std::endl;
	std::cout << 32 << std::endl;
	std::cout << 33 << std::endl;
	std::cout << 34 << std::endl;
	std::cout << 35 << std::endl;
	std::cout << 36 << std::endl;
	std::cout << 37 << std::endl;
	std::cout << 38 << std::endl;
	std::cout << 39 << std::endl;
	std::cout << 40 << std::endl;
	std::cout << 41 << std::endl;
	std::cout << 42 << std::endl;
	std::cout << 43 << std::endl;
	std::cout << 44 << std::endl;
	std::cout << 45 << std::endl;
	std::cout << 46 << std::endl;
	std::cout << 47 << std::endl;
	std::cout << 48 << std::endl;
	std::cout << 49 << std::endl;
	std::cout << 50 << std::endl;
}
Rififi вне форума Ответить с цитированием
Старый 06.07.2012, 17:03   #3
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Код:
void write(int i)
{
    if (i<=50) {cout<<i<<" "; write(i+1);}
}
int main()
{
    write(1);
}
eoln вне форума Ответить с цитированием
Старый 06.07.2012, 17:04   #4
Антон1305
 
Регистрация: 04.07.2012
Сообщений: 4
По умолчанию

Нет, моего препода это явно не устроит. Нужен другой вариант Неужели нельзя по-другому?
Антон1305 вне форума Ответить с цитированием
Старый 06.07.2012, 17:16   #5
Антон1305
 
Регистрация: 04.07.2012
Сообщений: 4
По умолчанию

eoln, то что надо! Спасибо, друг!
Антон1305 вне форума Ответить с цитированием
Старый 06.07.2012, 17:18   #6
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Цитата:
Сообщение от Антон1305 Посмотреть сообщение
без использования циклов и hard coding в С++(
Здесь либо одно, либо другое, иначе никак. Можно спрятать циклы за функциями стандартной библиотеки, но это тоже вряд ли устроит преподавателя?
Код:
#include <algorithm>
#include <iostream>
#include <iterator>
 
int next ()
{ 
  static int current = 1;
  return current++;
}
 
int main ()
{
  std::generate_n (std::ostream_iterator<int> (std::cout, "\n"), 50, next);
}
netrino вне форума Ответить с цитированием
Старый 06.07.2012, 17:22   #7
Антон1305
 
Регистрация: 04.07.2012
Сообщений: 4
По умолчанию

netrino, спасибо! Использую оба варианта, какой-то должен прокатить
Антон1305 вне форума Ответить с цитированием
Старый 06.07.2012, 18:09   #8
Last
В прострации
Форумчанин
 
Регистрация: 13.01.2009
Сообщений: 239
По умолчанию

Глупое задание. Рекурсию можно убить переполнением стека(хотя на мой взгляд решение отличное), а STL задолбаешься впаривать преподу. Я бы посмотрел на этот процесс.
Пол-жизни сидючи, в монитор глядючи...
Last вне форума Ответить с цитированием
Старый 06.07.2012, 19:05   #9
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Цитата:
Сообщение от Last Посмотреть сообщение
Глупое задание. Рекурсию можно убить переполнением стека(хотя на мой взгляд решение отличное), а STL задолбаешься впаривать преподу. Я бы посмотрел на этот процесс.
В данном случае, едва ли получится убить рекурсию переполнением стека, ввиду того, что она хвостовая, и скорее всего будет оптимизирована до простого goto, вроде
Код:
int main ()
{
  int i = 1;
loop:
  std::cout << i << " ";
  if (++i <= 50) goto loop;
}
netrino вне форума Ответить с цитированием
Старый 06.07.2012, 19:08   #10
rlib
Форумчанин
 
Аватар для rlib
 
Регистрация: 22.05.2012
Сообщений: 352
По умолчанию

Стандартнейшее задание на метапрограминг. Разворот цикла тэмплейтом:

Код:
#include <iostream>

template< int i >
struct LOOP {  
    static inline void EXEC() {
      std::cout << i << std::endl;
	  LOOP<i-1>::EXEC();
    }
};

template <>
struct LOOP<0>{  
    static inline void EXEC() {
		std::cout <<  std::endl;        
    }
};


int main()
{
	LOOP<50>::EXEC();
	return 0;
}
rlib вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод на экран элементов перечислимого множества чисел Фибоначчи Dark Raven Помощь студентам 1 16.03.2012 08:18
Glut вывод чисел/строк на экран Gazibalonchik Gamedev - cоздание игр: Unity, OpenGL, DirectX 0 18.02.2012 01:01
вывод чисел на экран TotKtoNado Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 22 02.01.2012 14:18
Вывод на экран N простых чисел. Renge Помощь студентам 2 13.09.2011 18:53