1、某侦察队接到一项紧急任务,要求在A、B、C、D、E、F六个队员中尽可能多地挑若干人,但有以下限制条件:
侦察兵A和B两人中至少去一人; a+b>=1(由于每个队员有两种状态:去与不去,假设不去为0,去为1;把每个条件用等式表示出来,用for循环让每个条件都满足)
A和D不能一起去; a+d<=1
A、E和F三人中要派两人去; a+e+f == 2
B和C都去或都不去; b+c !=1
C和D两人中去一个; c+d==1
若D不去,则E也不去。 d+e==0 || d=1
问应当让哪几个人去?
for (int a = 0; a <= 1; a++) { for (int b = 0; b <= 1; b++) { for (int c = 0; c <= 1; c++) { for (int d = 0; d <= 1; d++) { for (int e = 0; e <= 1; e++) { for (int f = 0; f <= 1; f++) { if (a + b >= 1 && a + d <= 1 && a + e + f == 2 && b + c != 1 && c + d == 1 && (d + e == 0 || d == 1)) { Console.WriteLine("A:" + a + " B:" + b + " C:" + c + " D:" + d + " E:" + e + " F:" + f); } } } } } } }
2、公园里有一只猴子和一堆桃子,猴子每天吃掉桃子总数的一半,把剩下一半中扔掉一个坏的。到第七天的时候,猴子睁开眼发现只剩下一个桃子。问公园里刚开始有多少个桃子?(逆向思维思考)
1
(1+1)*2==4
(4+1)*2==10
int tz = 1; for (int i = 6; i >= 1; i--) { tz = (tz + 1) * 2; } Console.WriteLine("第一天的时候公园里有:" + tz + "个桃子");
3.五个小朋友排成一队。问第一个多大了,第一个说比第二个大两岁,问第二个,第二个说比第三个大两岁,以此类推。问第五个小朋友几岁了,第五个小朋友说3岁了。问第一个小朋友几岁?
int a = 3; for (int i = 4; i > 0; i--) { a = a + 2 * i; } Console.WriteLine("第一个小朋友" + a + "岁");
4.1 () 2 () 3 ()4 = 4;问括号里我要填 (- 或 +)
//把“+”或“-”看做1,-1,用for循环解题
for (int a = -1; a <= 1; a = a + 2) { for (int b = -1; b <= 1; b = b + 2) { for (int c = -1; c <= 1; c = c + 2) { if ((1 + (a * 2) + (b * 3) + (c * 4)) == 4) { Console.WriteLine(a + " " + b + " " + c); } } } }