- 浏览: 5888 次
最新评论
文章列表
先上代码
客户端代码如下:
#include <sys/socket.h>
#include <arpa/inet.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>
void str_cli(FILE *stream, int fd);
int main(int argc, char* argv[])
{
if (argc < 2)
{
fprintf(stdout, "Usage: %s ip_addres ...
问题:
1000个瓶子,其有一瓶药水有毒,小白鼠喝药水7天后毒发身亡.
问如果要在七天后知道哪瓶有毒,需要最少几只小白鼠?
解答:
将瓶子按照1到1000的进行二进制数的编号,如第3个瓶子其编号就应该为0000000011,同时对这10只小白鼠,按照1-9进行编号,对1000瓶药水,若其编号的第位为1的话,就让第i只小白鼠喝下这瓶药水。喝过毒药的老鼠都会死掉,记录每瓶药水和喝过它的老鼠,如果喝过某瓶药水的老鼠全部死掉了,则这瓶药水就是毒药。
问题:
国王招来100个囚犯,对他们说:你们犯的是死罪,本应该将你们统统杀掉,但我慈悲为怀,给你们一次求生的机会。15分钟以后,你们将被关进一个有100间隔离牢房的监狱里,每人一间牢房,都与外界隔绝,什么也听不见 ...
600个苹果装入10个盒子
- 博客分类:
- 智力题
问题:有600个苹果10个盒子,要求把600个苹果分装到10个盒子里。如果有人来买苹果随便说出一个数,直接拿这些盒子组装一下就可以给他不用拆分盒子。请问这10个盒子应该分别装多少苹果?
解法:
每次在选择盒子的时候,可以“选”也可以选择“不选”,假如“选”用1表示、“不选”代表用0表示的话,我们很容易将其与二进制数联系在一起。
由于2^9=512,所以我们可以将第i个盒子放入2^(i-1)个苹果(i=1,2,..9),这样就可以组合出0-511个苹果,最后一个箱子放89个苹果,当有人想要511个以上苹果的时候,假设为N,就先给他最后一个箱子,然后从前九个箱子中组合出N-99个苹果就可以了。
问题
简单的8个球
8个一样大小的球,其中7个的重量是一样的,另一个比较重。怎样能够用天平仅称两次将那个重一些的球找出来?
复杂的12个球
12个球一个天平,现知道只有一个和其它的重量不同,问怎样称才能用三次就找到那个球。
13个呢?
1. 简单的八球
将球分为三组,分别为“A1,A2,A3”, "B1,B2,B3","C1,C2"
将“A1,A2,A3”和“B1,B2,B3”进行比较
若相等
则非标准球必然出现在C1,C2中,比较C1,C2, 其中较重者就是要找的球
若不相等
C1, C2必然是标准 ...