Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.83/113: Рейтинг темы: голосов - 113, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 02.03.2011
Сообщений: 6

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

02.03.2011, 18:08. Показов 24935. Ответов 68
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем.

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

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

P.S. Человек с которым общался явно знал не менее двух решений.
Но я был не в том положении, чтобы спрашивать у него.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.03.2011, 18:08
Ответы с готовыми решениями:

Вывести все числа из диапазона от 0 до 1000, которые делятся на 2 и на 3 без остатка (for, while)
Напишите программу которая выводит все числа из диапазона от 0 до 1000 которая делятца на 2 и на 3 без остатка. 2 варианта (While, for)

Найти числа, меньше 1000, сумма делителей (без самого числа) которых, больше данного числа
Найти числа, меньше 1000, сумма делителей(без самого числа) которых, больше данного числа. помогите плз

Как вывести на консоль числа от 1 до 1000 не используя цикл?
Как вывести на консоль числа от 1 до 1000 не используя цикл ?

68
Эксперт С++
 Аватар для odip
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
02.03.2011, 20:40
cout <<1 <<"\n";
cout <<2 <<"\n";
cout <<3 <<"\n";
cout <<4 <<"\n";
Дальше лень писать
0
0 / 0 / 0
Регистрация: 02.03.2011
Сообщений: 6
02.03.2011, 21:01  [ТС]
Тоже вариант - проверяется трудолюбие претендента!
0
 Аватар для fimbulwinter
309 / 309 / 1
Регистрация: 16.01.2011
Сообщений: 1,073
02.03.2011, 21:13
я конечно не знаток Си и Си++
да в общем то и языков программирования))

1.
C++
1
2
3
4
5
6
int i=1;
    while(i%1001)
    {
        cout<<i<<endl;
        i++;
    }
2.
C++
1
2
3
4
5
6
int i = 1, j = 1000;
    while(j)
    {
        cout<<i<<endl;
        i++; j--;   
    }
0
 Аватар для RUSya82
242 / 120 / 14
Регистрация: 15.10.2010
Сообщений: 395
02.03.2011, 21:13
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
 
using namespace std;
 
int main()
{
    int x = 1;
    do
    {
        cout << x << endl;
        x++;
    }while(1001-x);
    system("PAUSE");
    return 0;
}
0
0 / 0 / 0
Регистрация: 02.03.2011
Сообщений: 6
02.03.2011, 21:18  [ТС]
Ребята, спасибки за идею, но к сожалению вариант с while(n) это сравнение. Я первым делом уточнил.
0
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
02.03.2011, 21:19
Разве во всех предложенных вариантах не происходит сравнения, хоть и неявного?
0
274 / 175 / 12
Регистрация: 14.03.2010
Сообщений: 501
02.03.2011, 21:21
Лучший ответ Сообщение было отмечено как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
 
template <int N>
void printN () {
    printN<N - 1>();
    std::cout << N << std::endl;
}
 
template <>
void printN<0> () {}
 
int main () {
    printN<500>();
 
    return 0;
}
9
 Аватар для RUSya82
242 / 120 / 14
Регистрация: 15.10.2010
Сообщений: 395
02.03.2011, 21:24
То бишь циклы вообще не пользовать?
0
0 / 0 / 0
Регистрация: 02.03.2011
Сообщений: 6
02.03.2011, 21:27  [ТС]
Циклы со сравнениями не использовать, то есть while(1) или for(; может и прокатит,
но while(n) и if(n) нельзя.
0
 Аватар для fimbulwinter
309 / 309 / 1
Регистрация: 16.01.2011
Сообщений: 1,073
02.03.2011, 21:31
собственно чем while(1) от while(n) отличаются?
0
0 / 0 / 0
Регистрация: 02.03.2011
Сообщений: 6
02.03.2011, 21:33  [ТС]
Volovzi - ГЕНИАЛЬНО! Работает!!! Спасибо, я так и думал, что это какая-нибудь хитро выдуманная
языковая фишка! Такое использование специализации мне и в голову не приходило!!! Спасибо!!!

Fimbulwinter, про константу и бесконечные циклы я не уточнял. Поэтому не могу точно ответить.
0
1080 / 1007 / 107
Регистрация: 28.02.2010
Сообщений: 2,889
03.03.2011, 06:28
Лучший ответ Сообщение было отмечено как решение

Решение

Вот и второе решение.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <stdlib.h>
 
void donothing() {}
 
void dosomething() {exit(0);}
 
int main()
{
    int i;
 
    void (*pf[2])() = {donothing, dosomething};
    
    for (i=1;; i++)
    {
        printf("%d\n", i);
        pf[i/1000]();
    }
}
3
Эксперт С++
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
03.03.2011, 11:26
Лучший ответ Сообщение было отмечено как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
using namespace std;
 
class A
{
    static int i;
public:
    A() { cout << ++i << endl; }
};
 
int A::i = 0;
 
int main()
{
    A array[1000];
    return 0;
}
6
0 / 0 / 0
Регистрация: 02.03.2011
Сообщений: 6
03.03.2011, 14:15  [ТС]
Красиво!!
0
vow
15.03.2011, 02:26
CheshireCat,
Формучанин
364 / 296 / 42
Регистрация: 02.11.2010
Сообщений: 1,245
15.03.2011, 11:05
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
 
#define PRINT5(N) printf("%d %d %d %d %d ",N,N+1,N+2,N+3,N+4);N+=5
#define PRINT25(N) PRINT5(N);PRINT5(N);PRINT5(N);PRINT5(N);PRINT5(N)
 
#define PRINT100(N)   PRINT25(N); PRINT25(N); PRINT25(N);PRINT25(N)
#define PRINT250(N)  PRINT100(N);PRINT100(N); PRINT25(N);PRINT25(N)
#define PRINT1000(N) PRINT250(N);PRINT250(N);PRINT250(N);PRINT250(N)
 
 
int main(void)
{
  int i=1;
 
  PRINT1000(i); //Выводит числа от i(включая) до i+1000(исключая)
 
  
  printf("\nPress Enter to exit...");int fcked_win32;scanf("%c",(char*)&fcked_win32);
  return 0;
  
}
0
Эксперт С++
1675 / 1047 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
15.03.2011, 22:55
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
template<unsigned int N>
inline void printnums()
{
    printnums<N-1>();
    std::cout << N << std::endl;
}
 
template<>
inline void printnums<0>()
{
}
 
int main()
{
    printnums<1000>();
}
не всякий компилятор потянет
0
274 / 175 / 12
Регистрация: 14.03.2010
Сообщений: 501
15.03.2011, 23:05
Nick Alte, во-первых, этот вариант уже был, а во-вторых, всякий. Надо только установить глубину реализации шаблонов в тысячу.
0
Эксперт С++
1675 / 1047 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
15.03.2011, 23:06
volovzi, если не ошибаюсь, то многие версии визуала просто не вытянут тысячу вне зависимости от настроек. Ну а что было - извиняйте, не разглядел именно этот вариант.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.03.2011, 23:06
Помогаю со студенческими работами здесь

Написать функцию, которая получает 2 целых числа и возвращает большее из них без циклов, ветвлений и сравнений
решаем всем офисом &quot;всем привет! лектор задал задачку, я ломал голову но так и не придумал. вопрос простой. надо написать...

Вывести на экран те числа из интервала [10 .. 1000], которые меньше произведения цифр десятичной записи числа
Написать программу: среди чисел от 10 до 1000,найти и вывести на экран те, которые меньше произведения цифр десятичной записи этого числа....

Вывести простые числа в диапазоне от 2 до 1000
Здраствуйте, есть задачка: Создать программу, которая выводит на экран простые числа в диапазоне от 2 до 1000. (Число называется...

Вывести простые числа на интервале от 2 до 1000
Создать программу, которая выводит на экран простые числа в диапазоне от 2 до 1000. (Число называется простым, если оно делится только на 1...

Вивести на екран усі числа, що діляться на 11 без остачі від 11 до 1000 крім 110 і 220.
ДОПОМОЖІТЬ ДОРОБИТИ ЗАДАЧУ!:help: Вивести на екран усі числа, що діляться на 11 без остачі від 11 до 1000 крім 110 і 220. public...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru