摘要: void Print1ToMaxOfNDigits(int n){ if(n = 0;i--) { printf("%d",number[i]); } printf("\n");} 阅读全文
posted @ 2013-11-17 11:16 姚来飞 阅读(234) 评论(0) 推荐(0) 编辑
摘要: [问题]一个整数数组中每个数均出现三次,只有一个数只出现一次。找出这个数。[解析]如果这里的数不是出现三次而是出现两次,我们可以使用异或的方式将所有的数进行异或,最后的结果自然是仅出现一次的数。受此启发,这里考虑将整数表达成3进制,每一位的异或操作:1xo0=12xo0=20xo0=01x01=21xo2=02xo2=1这样,相同的三个数的同一位的异或值一定为0,0与x的异或等于x。通过将所有的数表示成三进制,一起异或,最后的结果为即仅出现一次的数 阅读全文
posted @ 2013-11-17 10:10 姚来飞 阅读(353) 评论(1) 推荐(0) 编辑
摘要: [问题]有1023个苹果,有无数个箱子,怎样将这1023个苹果放到最少数量的箱子里,使我随意说出一个1024以内的数字,都能用箱子组合起来使得苹果数量等于那个数字。[解析]每个箱子分别存放1,2,4,8,……,512个苹果。因为整数都能写成二进制形式,所以按照二进制到十进制的转化过程就能够写成2的幂次方相加的形式,所以按照这样放能够表示出所有数字,而且箱子最少。 阅读全文
posted @ 2013-11-17 09:50 姚来飞 阅读(258) 评论(0) 推荐(0) 编辑