今天看到了两道比较有趣的题目,感觉挺有意思的,就把它们记录下来。
例题1:
一只猴子把100根香蕉搬回50m以外的家,它一次只能搬50根,而且它每走一米就要吃一根香蕉,请问:猴子到家后最多还能剩几根香蕉?
解: 50m
100根香蕉 | ------|-------|-------|--------|---------|
思考过程:先假设,猴子抱了50根香蕉走了1m,这时候还剩49根,它拿走两根然后回到起点,把剩下的50根抱一米,这一米它吃了3根香蕉,以此类推,每走一米吃3根香蕉,走了17m后,还剩49根,这时,猴子不需要返回了,还剩下33m,他可以直接抱回家,49-(50-17)=16。最终猴子剩下16根。
例题2:
在某个犯罪案件中,一共四名证人A、B、C、D,A说“我不是凶手”,B说“C是凶手”,C说“D是凶手”,D说“C在胡说”;请通过编程的方法,找出凶手。
#include<stdio.h>
int main()
{
char killer;
int i;
int sum;
for (i = 0; i < 4; i++)
{
killer = 'A' + i;
sum = (killer != 'A') + (killer == 'C') + (killer == 'D') + (killer != 'D' );
if (sum == 3)
{
printf ("killer is %c\n",killer);
break;
}
}
return 0;
}