今天看到了两道比较有趣的题目,感觉挺有意思的,就把它们记录下来。
例题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; }