a funny riddle

и задачки для интервью.
User avatar
coder
Уже с Приветом
Posts: 798
Joined: 06 Jan 2002 10:01
Location: CT

a funny riddle

Post by coder »

Я в С не силен, но наверное самое простое - это поменять
i --
на
n --
Observer_1
Новичок
Posts: 27
Joined: 04 Mar 2002 10:01
Location: East Bay, CA

a funny riddle

Post by Observer_1 »

</font><blockquote><font size="1" face="Arial, Verdana, Helvetica, sans-serif">quote:</font><hr /><font size="2" face="Arial, Verdana, Helvetica, sans-serif">Originally posted by Дима:
<strong>Я в С не силен, но наверное самое простое - это поменять
i --
на
n --</strong></font><hr /></blockquote><font size="2" face="Arial, Verdana, Helvetica, sans-serif">here we go - solution one!
dimach
Уже с Приветом
Posts: 460
Joined: 22 Dec 1999 10:01
Location: san jose, ca

a funny riddle

Post by dimach »

</font><blockquote><font size="1" face="Arial, Verdana, Helvetica, sans-serif">quote:</font><hr /><font size="2" face="Arial, Verdana, Helvetica, sans-serif">Originally posted by Observer_1:
<strong> </font><blockquote><font size="1" face="Arial, Verdana, Helvetica, sans-serif">quote:</font><hr /><font size="2" face="Arial, Verdana, Helvetica, sans-serif">Originally posted by Дима:
<strong>Я в С не силен, но наверное самое простое - это поменять
i --
на
n --</strong></font><hr /></blockquote><font size="2" face="Arial, Verdana, Helvetica, sans-serif">here we go - solution one!</strong></font><hr /></blockquote><font size="2" face="Arial, Verdana, Helvetica, sans-serif">i<n => i+n

...i think <img border="0" title="" alt="[Smile]" src="smile.gif" />
User avatar
califf
Уже с Приветом
Posts: 155
Joined: 28 Jan 2002 10:01
Location: Minsk->FL

a funny riddle

Post by califf »

а потом попробовать
</font><blockquote><font size="1" face="Arial, Verdana, Helvetica, sans-serif">code:</font><hr /><pre style="font-size:x-small; font-family: monospace;">for (i=0; -i<n; i--)
for (i=0; i+n; i--)</pre><hr /></blockquote><font size="2" face="Arial, Verdana, Helvetica, sans-serif">Есть ли еще способы?
Observer_1
Новичок
Posts: 27
Joined: 04 Mar 2002 10:01
Location: East Bay, CA

a funny riddle

Post by Observer_1 »

</font><blockquote><font size="1" face="Arial, Verdana, Helvetica, sans-serif">quote:</font><hr /><font size="2" face="Arial, Verdana, Helvetica, sans-serif">Originally posted by dimach:

<strong> i<n => i+n

...i think <img border="0" title="" alt="[Smile]" src="smile.gif" /> </strong></font><hr /></blockquote><font size="2" face="Arial, Verdana, Helvetica, sans-serif">Here we go - solution two!
User avatar
CTAC_P
Уже с Приветом
Posts: 6789
Joined: 01 Jun 2001 09:01

a funny riddle

Post by CTAC_P »

<small>[ 15-03-2002, 16:59: Message edited by: CTAC_P ]</small>
User avatar
Sullen
Уже с Приветом
Posts: 1823
Joined: 28 Sep 1999 09:01
Location: CA, Saratoga, USA

a funny riddle

Post by Sullen »

</font><blockquote><font size="1" face="Arial, Verdana, Helvetica, sans-serif">code:</font><hr /><pre style="font-size:x-small; font-family: monospace;"> # include <stdio.h>

main ( int, char** )
{
// 1.**************************/
int i, n=20;
for(i = 0 ; i < n ; n --) //i--)
printf("-");
/*******************************/
printf("\n");
n=20;

// 2. **************************/
for(i = 0 ; i < n ; i++) //i--)
printf("-");
/*******************************/
printf("\n");

// 3. ***************************/
for(i = 0 ; i*-1 < n ; i--)
printf("-");

printf("\n");


return '\0';
} </pre><hr /></blockquote><font size="2" face="Arial, Verdana, Helvetica, sans-serif">
User avatar
CTAC_P
Уже с Приветом
Posts: 6789
Joined: 01 Jun 2001 09:01

a funny riddle

Post by CTAC_P »

Поспешишь-людей насмешишь.

<small>[ 15-03-2002, 16:59: Message edited by: CTAC_P ]</small>
User avatar
Chapaev
Новичок
Posts: 96
Joined: 19 Jun 2001 09:01
Location: Canada

a funny riddle

Post by Chapaev »

</font><blockquote><font size="1" face="Arial, Verdana, Helvetica, sans-serif">quote:</font><hr /><font size="2" face="Arial, Verdana, Helvetica, sans-serif">Originally posted by Observer_1:
<strong>In the following code modify just one character such that the resulting program would print exactly 20 dashes.

</font><blockquote><font size="1" face="Arial, Verdana, Helvetica, sans-serif">code:</font><hr /><pre style="font-size:x-small; font-family: monospace;">int
main ( int, char** )
{
int i, n=20;
for(i = 0 ; i <n ; i --)
printf("-");
}</pre><hr /></blockquote><font size="2" face="Arial, Verdana, Helvetica, sans-serif"></strong></font><hr /></blockquote><font size="2" face="Arial, Verdana, Helvetica, sans-serif">Код в приведенном виде не скомпелируется, необходимо хотя бы добавить #include <stdio.h>.
Следовательно, здесь приведен фрагмент из файла, и остальной код этого файла skipped. Можно сделать предположение о skipped части файла.
Здесь огромное количество вариантов.
Пример 1:
</font><blockquote><font size="1" face="Arial, Verdana, Helvetica, sans-serif">code:</font><hr /><pre style="font-size:x-small; font-family: monospace;">int
main ( int, char** )
{
int i, n=20;
for(i = 0 ; i <n ; i --)
Printf("-");
}</pre><hr /></blockquote><font size="2" face="Arial, Verdana, Helvetica, sans-serif">А где-то в этом-же файле до этого текста, есть строчка
</font><blockquote><font size="1" face="Arial, Verdana, Helvetica, sans-serif">code:</font><hr /><pre style="font-size:x-small; font-family: monospace;">#define Printf(s) { printf("--------------------"); break;}</pre><hr /></blockquote><font size="2" face="Arial, Verdana, Helvetica, sans-serif">Пример 2:

</font><blockquote><font size="1" face="Arial, Verdana, Helvetica, sans-serif">code:</font><hr /><pre style="font-size:x-small; font-family: monospace;">int
main ( int, char** )
{
Int i, n=20;
for(i = 0 ; i <n ; i --)
printf("-");
}</pre><hr /></blockquote><font size="2" face="Arial, Verdana, Helvetica, sans-serif">А где-то в этом-же файле до этого текста или в header, есть определение класса Int:
</font><blockquote><font size="1" face="Arial, Verdana, Helvetica, sans-serif">code:</font><hr /><pre style="font-size:x-small; font-family: monospace;">class Int
{
public:
Int(int i=0) { m_i = i; };
void operator --() { m_i++; };
operator int() { return m_i; };

private:
int m_i;
};</pre><hr /></blockquote><font size="2" face="Arial, Verdana, Helvetica, sans-serif"><img border="0" title="" alt="[Big Grin]" src="biggrin.gif" /> <img border="0" title="" alt="[Big Grin]" src="biggrin.gif" />

<small>[ 15-03-2002, 17:38: Message edited by: Chapaev ]</small>
User avatar
coder
Уже с Приветом
Posts: 798
Joined: 06 Jan 2002 10:01
Location: CT

a funny riddle

Post by coder »

ой <img border="0" title="" alt="[Eek!]" src="eek.gif" />
сотру, пока никто не заметил <img border="0" title="" alt="[Smile]" src="smile.gif" />

<small>[ 15-03-2002, 20:31: Message edited by: Дима ]</small>
Observer_1
Новичок
Posts: 27
Joined: 04 Mar 2002 10:01
Location: East Bay, CA

a funny riddle

Post by Observer_1 »

</font><blockquote><font size="1" face="Arial, Verdana, Helvetica, sans-serif">quote:</font><hr /><font size="2" face="Arial, Verdana, Helvetica, sans-serif">Originally posted by Chapaev:
<strong>
Код в приведенном виде не скомпелируется, необходимо хотя бы добавить #include <stdio.h>.
</strong> </font><hr /></blockquote><font size="2" face="Arial, Verdana, Helvetica, sans-serif">Вот это чапаевский напор :-) - конечно же скомпилируется и слинкуется, если только -Werror не указывать компилятору.

Так что Вас на интервью не пригласили бы - типичный случай когда решение 'way overengineered :-)'

Решения [b:7150720b95]Dimitry T. [/b:7150720b95] принимаются, других я не знаю.

Есть ещё один - "почти правильный" вариант - изменить один символ так, чтобы было напечатано 21 тире - как на счёт этого?

<small>[ 15-03-2002, 18:52: Message edited by: Observer_1 ]</small>
User avatar
Chapaev
Новичок
Posts: 96
Joined: 19 Jun 2001 09:01
Location: Canada

a funny riddle

Post by Chapaev »

</font><blockquote><font size="1" face="Arial, Verdana, Helvetica, sans-serif">quote:</font><hr /><font size="2" face="Arial, Verdana, Helvetica, sans-serif">Originally posted by Observer_1:
Есть ещё один - "почти правильный" вариант - изменить один символ так, чтобы было напечатано 21 тире - как на счёт этого?</font><hr /></blockquote><font size="2" face="Arial, Verdana, Helvetica, sans-serif">А для этого вообще ничего не надо менять в этом фрагменте.
Так как символ printf не определен, определим его следующим образом
</font><blockquote><font size="1" face="Arial, Verdana, Helvetica, sans-serif">code:</font><hr /><pre style="font-size:x-small; font-family: monospace;">#include <iostream.h>
#define printf(s) { cout << "---------------------" << endl; break;}</pre><hr /></blockquote><font size="2" face="Arial, Verdana, Helvetica, sans-serif">И ничего не надо менять.
Ну не очевидно для меня, что такое printf...
<img border="0" title="" alt="[Razz]" src="tongue.gif" />
Observer_1
Новичок
Posts: 27
Joined: 04 Mar 2002 10:01
Location: East Bay, CA

a funny riddle

Post by Observer_1 »

This was offered on the website of an Israeli company a few years ago. Those who would sent in the correct answers were promised to be invited for an interview - at least so I was told.

In the following code modify just one character such that the resulting program would print exactly 20 dashes.

I know of three independent solutions - any more anyone?

</font><blockquote><font size="1" face="Arial, Verdana, Helvetica, sans-serif">code:</font><hr /><pre style="font-size:x-small; font-family: monospace;">int
main ( int, char** )
{
int i, n=20;
for(i = 0 ; i <n ; i --)
printf("-");
}</pre><hr /></blockquote><font size="2" face="Arial, Verdana, Helvetica, sans-serif">

Return to “Головоломки”