Большой Воронежский Форум
Страница 3 из 3
< 123
» Программирование>Народ помогите с двумя переменными ...
MadFish 16:19 28.08.2008

Сообщение от ][irurg:
насчет маньячного решения- имхо не решение это вовсе

напротив, это решение и очень забавное. Только автор явно страдает какими-то комплексами...
Нафига это все было пропускать через обфускатор я не знаю....
взял на себя труд привести в божеский вид

Сообщение от :
#include "stdlib.h"

typedef unsigned long ULONG;
ULONG check(ULONG q3,ULONG q4,ULONG q5,ULONG q6)
{
//ЕСЛИ Q3=Q4 ВЕРНУТЬ Q5 ИНАЧЕ Q6
ULONG x=((q3-q4)&(q4-q3));
return (q5-q6)*(1/(x+1))+q6;
}
ULONG check_0(long in)
{
return check(in,0,1,0);
}
ULONG check_minus1(long in)
{
return check(in,-1,1,0);
}
ULONG rec_plus(long);

ULONG ret_0(long q8)
{
return 0;
}

ULONG ret_1(long q8)
{
return 1;
}

ULONG call_rec(long in)
{
return rec_plus(in/2);
}

ULONG rec_minus(long in)
{

ULONG(*q15[])(long)={ret_1,call_rec};
return q15[check(check_minus1(in),1,0,1)](in);
}

ULONG rec_plus(long in)
{
ULONG(*q15[])(long)={ret_0,rec_minus};
return q15[ check(check_0(in),1,0 ,1)](in);
}

ULONG max(long q3,long q4)
{
return check( rec_plus( q3),1, check( rec_plus(q4),1,rec_plus(q3-q4),1) , check( rec_plus(q4),1 ,0, rec_plus(q3-q4) ) );

}

long ret_a (long q3,long q4)
{
return q3;
}

long ret_b(long q3,long q4)
{
return q4;
}

long q20( long q3,long q4)
{
long(*q15[])(long,long)={ret_b,ret_a};
return q15[ check( max(q3,q4),1,0,1) ](q3,q4);
}


int check_man (char **argv)
{
printf("%ld\n",q20( strtol(argv[1],0,10),strtol(argv[2],0,10)));
return 0;
}

int main(int argc,char**argv)
{
return check_man(argv);
}

[Ответ]
Страница 3 из 3
< 123
Вверх