看不懂几个,
------解决方案--------------------用c编:)
------解决方案--------------------再发个简洁版的,注意只能在int为32位以上的编译器上使用。否则声明要改成long。这个其实也比较好懂。
main(lO,l0){l0&&(lO&&scanf( "%d ",&l0),main(0,l0/10),printf( "%d ",l0%10));}
------解决方案--------------------强,这个简洁版,能否解释下
------解决方案--------------------递归喽,十分简单的算法。
先解释一下&&运算符,利用它的“短路”性质可以代替if语句,即前一半若为1才执行后一半。
再说逗号运算符,它的求值次序也是固定的,从左向后,从而可以用一个表达式代替一串语句。
最后说明main()函数的参数,本来是整数的argc和char **类型的argv,不过可以重定义。第一个参数argc在运行时得到的值就是参数总数+1,从而总是正数;后面的argv是指向命令行参数的指针,一般也非0。
简洁版把混淆的变量名整理以后,就是这样:
main(int flag, int n)
{
if (n) { // 一般外界调用n值也非0
if (flag) // 外界调用,flag非0,则要求输入数字
scanf( "%d ", &n);
main(0, n / 10); // 递归输出前面的位,传flag = 0,则不会再执行scanf
printf( "%d ",n%10)); // 输出末一位
}
}
------解决方案--------------------经验,谢谢
------解决方案--------------------都够强的!!
------解决方案--------------------强的一塌糊涂
------解决方案--------------------不好意思 我写不出老师看不懂的正确的代码
不过参与者 就有分 你说的哦 我就来凑热闹了!
------解决方案-------------------- 星羽的在我这儿改成这样才能通过 :(
话说当年IOCCC一道获奖作品就是这样的。
#include <stdio.h>
const int main[] =
{
0x68909090 , (int)(main+5) ,
0xb8909090 , (int)printf ,
0xc358d0ff , 0x6c6c6548 ,
0x6f57206f , 0x21646c72 ,
0x0000000a
};
------解决方案--------------------不是吧, 这是我前不久写的啊 ...
--------------------------------------------------
星羽的在我这儿改成这样才能通过 :(
话说当年IOCCC一道获奖作品就是这样的。
#include <stdio.h>
const int main[] =
{
0x68909090 , (int)(main+5) ,
0xb8909090 , (int)printf ,
0xc358d0ff , 0x6c6c6548 ,
0x6f57206f , 0x21646c72 ,
0x0000000a
};
------解决方案--------------------int main()
{
string str;
cin > > str;
copy(str.begin(),str.end(),ostream_iterator <char> (cout, " ") );
};
------解决方案--------------------坐在一边看高手表演。。
------解决方案--------------------printf( "hello - flw 's hello world. 0.8 version\n " );
又见 flw 这个 XX 。。
------解决方案--------------------潜力贴,等找人把他吊起来...
------解决方案--------------------回复人:Wolf0403(废人:独活十年~心如刀割) ( 两星(中级)) 信誉:115 2007-06-18 14:26:41 得分:0
printf( "hello - flw 's hello world. 0.8 version\n " );
又见 flw 这个 XX 。。
————————————————————
不好意思,无意中看到他这个代码,贴过来的。
------解决方案--------------------你们都在发浪!!!!!!!!
------解决方案--------------------