Re[9]: Тест на смекалку !
От: sc Россия  
Дата: 25.03.06 19:25
Оценка:
Здравствуйте, 8bit, Вы писали:

8>Здравствуйте, sc, Вы писали:


sc>>Здравствуйте, 8bit, Вы писали:


8>>>Здравствуйте, sc, Вы писали:


sc>>>>я знаю, но не буду говорить)


8>>>Почему же ?

sc>>потому что другим уже будет не интересно, могу дать только намек

8>Ну тогда попозже сравним ответы !

Может дать намек?
Re[10]: Тест на смекалку !
От: 8bit  
Дата: 25.03.06 19:28
Оценка:
Здравствуйте, sc, Вы писали:

sc>Здравствуйте, 8bit, Вы писали:


8>>Здравствуйте, sc, Вы писали:


sc>>>Здравствуйте, 8bit, Вы писали:


8>>>>Здравствуйте, sc, Вы писали:


sc>>>>>я знаю, но не буду говорить)


8>>>>Почему же ?

sc>>>потому что другим уже будет не интересно, могу дать только намек

8>>Ну тогда попозже сравним ответы !

sc>Может дать намек?

да я вроде дал намек ниже в ветке...
если только выделить 'C++' по ярче....
Re: Эврика N
От: remark Россия http://www.1024cores.net/
Дата: 25.03.06 19:31
Оценка: 13 (2)
Здравствуйте, Аноним, Вы писали:

А>Как вывести строку текста 1000 раз не используя явного или не явного цикла ?




struct XXX
{
    XXX()
    {
        strcpy(data, "Hello");
    }

    char data[6];
};

XXX data[1000];
std::cout.write(reinterpret_cast<const char*>(&data[0]), sizeof(data));





1024cores &mdash; all about multithreading, multicore, concurrency, parallelism, lock-free algorithms
Re[11]: Тест на смекалку !
От: sc Россия  
Дата: 25.03.06 19:31
Оценка:
Здравствуйте, 8bit, Вы писали:

8>да я вроде дал намек ниже в ветке...

8>если только выделить 'C++' по ярче....
Может быть написать слово на букву К? Если я правильно догадался)
Re: Тест на смекалку ! Уточнение и подсказка 3
От: 8bit  
Дата: 25.03.06 19:32
Оценка:
Как вывести строку текста на экран (консоль приложения)
РОВНО 1000 раз
не используя явного или не явного цикла,
при этом код должен быть минимален и
использованы только возможности стандартного C++ ?

Определение не явного цикла:
цикл созданный путем различных ухитрений,
(где обычно присутствует счетчик итераций)

Намек:
C++
Re: Тест на смекалку !
От: Аноним  
Дата: 25.03.06 19:32
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Как вывести строку текста 1000 раз не используя явного или не явного цикла ?


рекурсией, напрмер шаблонной
Re[2]: Тест на смекалку ! Уточнение и подсказка
От: Кодт Россия  
Дата: 25.03.06 19:35
Оценка:
Здравствуйте, 8bit, Вы писали:

8>Как вывести строку текста на экран ровно 1000 раз

8>не используя явного или не явного цикла, при этом код должен быть минимален и
8>использованы только возможности стандартного C++ ?

Решение с BOOST_PP подходит. В нём нет циклов — препроцессор всё разворачивает.
Перекуём баги на фичи!
Re[2]: Эврика N
От: Кодт Россия  
Дата: 25.03.06 19:37
Оценка: 24 (5) +4
Здравствуйте, remark, Вы писали:

А>>Как вывести строку текста 1000 раз не используя явного или не явного цикла ?


R>struct XXX
R>{
R>    XXX()
R>    {
R>        strcpy(data, "Hello");
R>    }

R>    char data[6];
R>};

R>XXX data[1000];
R>std::cout.write(reinterpret_cast<const char*>(&data[0]), sizeof(data));


Даже проще:
struct X { X() { cout << "Hello" << endl; } };
int main() { X data[1000]; }
Перекуём баги на фичи!
Re: Эврика N+1
От: remark Россия http://www.1024cores.net/
Дата: 25.03.06 19:43
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Как вывести строку текста 1000 раз не используя явного или не явного цикла ?




std::vector<const char*> data(1000, "Hello\n");
std::for_each(data.begin(), data.end(), std::cout << boost::lambda::_1);



Хочу сразу заметить, что for_each нельзя считать не явным, не неявным циклом — т.к. это есть просто "применение fff к диапазону".



1024cores &mdash; all about multithreading, multicore, concurrency, parallelism, lock-free algorithms
Re[3]: Эврика N
От: remark Россия http://www.1024cores.net/
Дата: 25.03.06 19:44
Оценка:
Здравствуйте, Кодт, Вы писали:

К>Здравствуйте, remark, Вы писали:


А>>>Как вывести строку текста 1000 раз не используя явного или не явного цикла ?


К>
R>>struct XXX
R>>{
R>>    XXX()
R>>    {
R>>        strcpy(data, "Hello");
R>>    }

R>>    char data[6];
R>>};

R>>XXX data[1000];
R>>std::cout.write(reinterpret_cast<const char*>(&data[0]), sizeof(data));
К>


К>Даже проще:

К>
К>struct X { X() { cout << "Hello" << endl; } };
К>int main() { X data[1000]; }
К>


Вот так всегда — придумывай после этого идеи



1024cores &mdash; all about multithreading, multicore, concurrency, parallelism, lock-free algorithms
Re[12]: Тест на смекалку !
От: 8bit  
Дата: 25.03.06 19:46
Оценка:
Здравствуйте, sc, Вы писали:

sc>Здравствуйте, 8bit, Вы писали:


8>>да я вроде дал намек ниже в ветке...

8>>если только выделить 'C++' по ярче....
sc>Может быть написать слово на букву К? Если я правильно догадался)

На букву C может быть ?
Re[3]: Тест на смекалку ! Уточнение и подсказка
От: remark Россия http://www.1024cores.net/
Дата: 25.03.06 19:47
Оценка:
Здравствуйте, Кодт, Вы писали:

К>Здравствуйте, 8bit, Вы писали:


8>>Как вывести строку текста на экран ровно 1000 раз

8>>не используя явного или не явного цикла, при этом код должен быть минимален и
8>>использованы только возможности стандартного C++ ?

К>Решение с BOOST_PP подходит. В нём нет циклов — препроцессор всё разворачивает.



Автор не до конца уточняет условие. В частности что такое "неявные циклы". Я уже предположил, что возможно автор подразумевает такую трактовку: "то, что позволяет повторить выполнение какого-либо действия несколько раз". В таком случае ни BOOST_PP, ни решение с массивом не подходят



1024cores &mdash; all about multithreading, multicore, concurrency, parallelism, lock-free algorithms
Re[3]: Тест на смекалку ! Уточнение и подсказка
От: 8bit  
Дата: 25.03.06 19:48
Оценка:
Здравствуйте, Кодт, Вы писали:

К>Здравствуйте, 8bit, Вы писали:


8>>Как вывести строку текста на экран ровно 1000 раз

8>>не используя явного или не явного цикла, при этом код должен быть минимален и
8>>использованы только возможности стандартного C++ ?

К>Решение с BOOST_PP подходит. В нём нет циклов — препроцессор всё разворачивает.

там ниже уточнение... только чистый стандартый C++
Re[2]: Эврика N
От: remark Россия http://www.1024cores.net/
Дата: 25.03.06 19:50
Оценка:
Здравствуйте, remark, Вы писали:

R>Здравствуйте, Аноним, Вы писали:


А>>Как вывести строку текста 1000 раз не используя явного или не явного цикла ?




R>
R>struct XXX
R>{
R>    XXX()
R>    {
R>        strcpy(data, "Hello");
R>    }

R>    char data[6];
R>};

R>XXX data[1000];
R>std::cout.write(reinterpret_cast<const char*>(&data[0]), sizeof(data));
R>



Это полностью подходит под твоё уточнённое определение
Автор: 8bit
Дата: 25.03.06


R>

1024cores &mdash; all about multithreading, multicore, concurrency, parallelism, lock-free algorithms
Re[2]: Эврика N+1
От: remark Россия http://www.1024cores.net/
Дата: 25.03.06 19:50
Оценка:
Здравствуйте, remark, Вы писали:

R>Здравствуйте, Аноним, Вы писали:


А>>Как вывести строку текста 1000 раз не используя явного или не явного цикла ?




R>
R>std::vector<const char*> data(1000, "Hello\n");
R>std::for_each(data.begin(), data.end(), std::cout << boost::lambda::_1);
R>



R>Хочу сразу заметить, что for_each нельзя считать не явным, не неявным циклом — т.к. это есть просто "применение fff к диапазону".


B это полностью подходит под твоё уточнённое определение
Автор: 8bit
Дата: 25.03.06



R>

1024cores &mdash; all about multithreading, multicore, concurrency, parallelism, lock-free algorithms
Re: ЕСТЬ ПОБЕДИТЕЛЬ !
От: 8bit  
Дата: 25.03.06 19:56
Оценка:
правильный ответ дал Кодт модератор

Его ответ:

struct X { X() { cout << "Hello" << endl; } };
int main() { X data[1000]; }

Хотя предпологалось так:

class X
{
public:
X() { cout << "Hello" << endl; }
};

int main() { X say[1000]; }

это и есть решение без цикла, явного или не явного, с наименьшим количеством кода !
Re[2]: ЕСТЬ ПОБЕДИТЕЛЬ !
От: 8bit  
Дата: 25.03.06 19:59
Оценка:
А так же наиболее ПРОСТОЕ !
не нужны ни vector, ни BOOST, ни чего кроме КОНСТРУКТОРА !
Re[13]: Тест на смекалку !
От: sc Россия  
Дата: 25.03.06 20:00
Оценка:
Здравствуйте, 8bit, Вы писали:

8>Здравствуйте, sc, Вы писали:


sc>>Здравствуйте, 8bit, Вы писали:


8>>>да я вроде дал намек ниже в ветке...

8>>>если только выделить 'C++' по ярче....
sc>>Может быть написать слово на букву К? Если я правильно догадался)

8>На букву C может быть ?

И на C тоже Конструктор == Constructor
Я скорее всего знал это раньше, так как решение пришло мгновенно, а это не типично для меня))
Re: Тест на смекалку !
От: Кодт Россия  
Дата: 25.03.06 20:03
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Как вывести строку текста 1000 раз не используя явного или не явного цикла ?


Решение с рекурсией. Голый Си.
#include <stdio.h>

void print_1() { printf("text\n"); }

#define DEF_PRINT(x,y) void print_##x() { print_##y(); print_##y(); }
DEF_PRINT(2,1)
DEF_PRINT(4,2)
DEF_PRINT(8,4)
DEF_PRINT(16,8)
DEF_PRINT(32,16)
DEF_PRINT(64,32)
DEF_PRINT(128,64)
DEF_PRINT(256,128)
DEF_PRINT(512,256)

int main()
{
  int const n = 1000;
  // мне лень раскладывать n по битам...
#define PRINT(x) (n & x) ? print_##x() : (void)0;
  PRINT(512);
  PRINT(256);
  PRINT(128);
  PRINT(64);
  PRINT(32);
  PRINT(16);
  PRINT(8);
  PRINT(4);
  PRINT(2);
  PRINT(1);
}
Перекуём баги на фичи!
Re[14]: Тест на смекалку !
От: 8bit  
Дата: 25.03.06 20:04
Оценка:
Здравствуйте, sc, Вы писали:

sc>Здравствуйте, 8bit, Вы писали:


8>>Здравствуйте, sc, Вы писали:


sc>>>Здравствуйте, 8bit, Вы писали:


8>>>>да я вроде дал намек ниже в ветке...

8>>>>если только выделить 'C++' по ярче....
sc>>>Может быть написать слово на букву К? Если я правильно догадался)

8>>На букву C может быть ?

sc>И на C тоже Конструктор == Constructor
sc>Я скорее всего знал это раньше, так как решение пришло мгновенно, а это не типично для меня))

Все верно ! это нужно сделать через конструктор !
И это замечательно что такие решения приходят к вам мгновенно !
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.