朋友拿了一份报纸要我作个实验,我同意了。
问题一:如果你知道一个女人怀孕了,她已经生了8个小孩子了,其中有3个耳朵聋,2个眼睛瞎,一个智能不足,而这个女人自己又有梅毒,请问,你会建议她堕胎吗?
我刚要回答,朋友制止了我,又问我第二个问题。
问题二:现在要选举一名领袖,而你这一票很关键,下面是关于3个候选人的的一些事实:
候选人A:跟一些不诚实的政客有往来,而且会星象占卜学。他有婚外情,是一个老烟枪,每天喝8到10杯的马丁尼。
候选人B:他过去有过2次被解雇的记录,睡觉睡到中午才起来,大学时吸鸦片,而且每天傍晚会喝一大夸特威士忌。
候选人C:他是一位受勋的战争英雄,素食主义者,不抽烟,只偶尔喝一点啤酒。从没有发生婚外情。
请问你会在这些候选人中选择谁?
我把答案写在纸上,然后朋友告诉我:
候选人A是富兰克林罗斯福,候选人B是温斯顿丘吉尔,候选人C是亚道夫希特勒。
我听了答案张大了嘴巴。朋友问我你是不是为人们选择了希特勒?那你会建议哪个妇女去堕胎吗?
我说:这个问题不用考虑,我们受优生优育教育多年了,都生那么多歪瓜劣枣了,就别在添乱了。我建议她去堕胎。
朋友告诉我:你杀了贝多芬,她是贝多芬的母亲。
我又一次张大了嘴巴。朋友说:吓一跳吧?本来以为你认为很好的答案,结果却扼杀了贝多芬,创造了希特勒?
最后的总结是:所以不要用既定的价值观来思考事物!
要是换做你们的话?你们会毁灭谁?创造谁?
编程时,如果碰到需要交换两个变量的值,那么习惯做法是使用一个中间变量,但是这并不是必须的;
可以使用这样的方法:
int a,b;
a=值1;
b=值2;
//交换
a=a^b;
b=b^a;
a=a^b;
//此时,a和b的值已经交换了;
证明:
a1=a0^b0;
b1=b0^a1=b0^(a0^b0)=a0^b0^b0=a0;
a2=a1^b1=(a0^b0)^a0=b0^a0^a0=b0;
应用的主要原理就是一个值经过同一个数的两次异或后值不变!
近期评论