Chinaunix首页 | 论坛 | 博客
  • 博客访问: 160480
  • 博文数量: 83
  • 博客积分: 3956
  • 博客等级: 中校
  • 技术积分: 663
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-24 16:29
文章分类

全部博文(83)

文章存档

2010年(83)

我的朋友

分类: C/C++

2010-10-20 15:18:43

    穷举算法是程序设计中使用得最为普遍、大家必须熟练掌握和正确运用的一种算法。它利用计算机运算速度快、精确度高的特点,对要解决 问题的所有可能情况,一个不漏地进行检查,从中找出符合要求的答案。

    用穷举算法解决问题,通常可以从两个方面进行分析:

一、问题所涉及的情况:问题所涉及的情况有哪些,情况的种数可不可以确定。把它描述出来。

二、答案需要满足的条件:分析出来的这些情况,需要满足什么条件,才成为问题的答案。把这些条件描述出来。

    只要把这两个方面分析好了,问题自然会迎刃而解。

实例:

日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯中的一个。

以下为4个嫌疑犯的供词。

A说: 不是我。

B说: 是C。

C说: 是D。

D说: C在胡说。

已知2个人说了真话,1个人说的是假话。现在请根据这些信息,写一个程序来确定到底谁是凶手。

程序如下:


1 #include <stdio.h>
  2
  3 int main(void)
  4 {
  5 int i, sum = 0, flag = 0;
  6 char killer;
  7
  8 for (i = 1; i <= 4; i++) {
  9 killer = 64 + i;
 10 sum = (killer != 'A') + (killer == 'C') +
 11 (killer == 'D') + (killer != 'D');
 12
 13 if (sum == 3) {
 14 flag = 1;
 15 printf("%c is the killer.\n", killer);
 16 break;
 17 }
 18 }
 19
 20 if (flag == 0)
 21 printf("can not find\n");
 22
 23 return 0;
 24 }

结果:

$ ./killer

C is the killer.

阅读(664) | 评论(0) | 转发(0) |
0

上一篇:字符函数

下一篇:程序实例 猜数字小游戏

给主人留下些什么吧!~~