Форум программистов, компьютерный форум CyberForum.ru

Как вывести числа от 1 до 1000 без сравнений в Си++? - C++

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 81, средняя оценка - 4.65
sergey1369
0 / 0 / 0
Регистрация: 02.03.2011
Сообщений: 6
02.03.2011, 18:08     Как вывести числа от 1 до 1000 без сравнений в Си++? #1
Привет всем.

Получил на собеседовании по Си++ такой странный вопрос, подумал, ещё подумал.
Ничего путного в голову не пришло. Вообщем стало дико любопытно, а как это
сделать средствами Си++?

Переадресую вопрос умным головам форума. Подскажите.

P.S. Человек с которым общался явно знал не менее двух решений.
Но я был не в том положении, чтобы спрашивать у него.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.03.2011, 18:08     Как вывести числа от 1 до 1000 без сравнений в Си++?
Посмотрите здесь:

C++ Вывести числа в диапазоне от 0 до 500.которые делятся на 5 без остатка
подскажите: как вывести на экран числа от 0 до 20.... и еще одна: вывести все четные числа от 0 до 20... C++
Как из числа double 4.056 извлечь число 1000? C++
C++ Вывести все 6-ти значные числа, которые делятся без остатка на сумму своих цифр
Без операторов цикла вывести цифры числа через пробел C++
Вывести на экран все числа, на которые заданное число делится без остатка C++
Вывести в цикле те цифры числа, которые не делятся на 3 без остатка. C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт C++
4947 / 3023 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
17.03.2011, 06:31     Как вывести числа от 1 до 1000 без сравнений в Си++? #61
alex_x_x, ну, если учесть, что в at просто не может не быть сравнения, то да, не катит)))
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
17.03.2011, 13:23     Как вывести числа от 1 до 1000 без сравнений в Си++? #62
Сообщение было отмечено автором темы, экспертом или модератором как ответ
черт, об этом я не подумал )

Добавлено через 49 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <cstdio>
#include <cstdlib>
#include <csignal>
 
int main ()
{
  signal (0,SIG_IGN);
 
  for( int i=1;;++i )
  { 
    printf( "%d ", i ); 
    raise( (i / 1000) * SIGINT );  
  } 
  return 0;
}
правда программа почемуто не дорабатывает до конца, даже хз
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16946 / 5351 / 329
Регистрация: 30.03.2009
Сообщений: 14,389
Записей в блоге: 26
17.03.2011, 14:07     Как вывести числа от 1 до 1000 без сравнений в Си++? #63
Цитата Сообщение от alex_x_x Посмотреть сообщение
правда программа почемуто не дорабатывает до конца, даже хз
Потому что printf буфферизует вывод. fflush спасти должно
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
17.03.2011, 16:26     Как вывести числа от 1 до 1000 без сравнений в Си++? #64
Цитата Сообщение от Evg Посмотреть сообщение
Потому что printf буфферизует вывод. fflush спасти должно
ага и правда, оказывается ни один сигнал с обработчиком по-умолчанию не завершает потоки
sbhx
 Аватар для sbhx
25 / 19 / 1
Регистрация: 02.02.2011
Сообщений: 90
18.03.2011, 18:23     Как вывести числа от 1 до 1000 без сравнений в Си++? #65
я долго пробовал понять что тут такого сложного.......
много правильных варианта было но по моему лучший вот:
C++
1
2
3
4
5
6
7
8
#include <iostream>
using namespace std;
int main(){
for(int i = 1; i <= 1000; i++){
cout << i;
}
system("pause");
}
silent_1991
Эксперт C++
4947 / 3023 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
18.03.2011, 18:26     Как вывести числа от 1 до 1000 без сравнений в Си++? #66
sbhx, а теперь перечитайте заголовок темы. Ключевая фраза: без сравнений.
sbhx
 Аватар для sbhx
25 / 19 / 1
Регистрация: 02.02.2011
Сообщений: 90
18.03.2011, 18:35     Как вывести числа от 1 до 1000 без сравнений в Си++? #67
Цитата Сообщение от silent_1991 Посмотреть сообщение
sbhx, а теперь перечитайте заголовок темы. Ключевая фраза: без сравнений.
я кажется туплю. где у меня там сравнение?
у меня только цикл
silent_1991
Эксперт C++
4947 / 3023 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
18.03.2011, 18:37     Как вывести числа от 1 до 1000 без сравнений в Си++? #68
А условие выхода из цикла какое?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.03.2011, 09:50     Как вывести числа от 1 до 1000 без сравнений в Си++?
Еще ссылки по теме:

вывести массив без максимального и минимального числа C++
C++ Сколько сравнений понадобится в худшем случае, чтобы упорядочить по возрастанию 4 различных числа
Даны числа от 1 до 1000 и число m. Вывести результат умножение куба нечетных сотен на число m C++
C++ Вывести все целые числа, на которые оба введенных числа делятся без остатка
Вывести числа, заканчивающиеся на 3 или 5, находящиеся в диапазоне от 1 до 1000 C++ Builder

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4248 / 2780 / 219
Регистрация: 12.12.2009
Сообщений: 7,109
Записей в блоге: 1
Завершенные тесты: 1
19.03.2011, 09:50     Как вывести числа от 1 до 1000 без сравнений в Си++? #69

Не по теме:

sergey1369, вас на работу то приняли?



Добавлено через 1 час 11 минут
Вот еще, правда это будет компилироваться только в GCC (я в MinGW компилил) :
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
int main (){
    int i=1;
    int n=reinterpret_cast<int>(&&end)-reinterpret_cast<int>(&&start);
start:
    std::cout<<i++<<" ";
    void* ptr=reinterpret_cast<void*>(&&start+n*(i/1001));
    goto *ptr;
end:
    return 0;
}
Yandex
Объявления
19.03.2011, 09:50     Как вывести числа от 1 до 1000 без сравнений в Си++?
Ответ Создать тему
Опции темы

Текущее время: 03:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru