离散数学 五省地图染色问题

文章描述了一个使用C语言编写的程序,该程序通过遍历所有可能的颜色组合来解决一个染色问题。问题要求用红、绿、蓝三种颜色给湖南、江西、浙江、安徽和湖北五个相邻省份染色,且相邻省份颜色不能相同。程序通过嵌套循环检查所有可能的组合,并计算出满足条件的解的数量。
摘要由CSDN通过智能技术生成

 题目:对下面地图 5 个省份染色

(1)使用红,绿,蓝三种颜色;

(2)相邻2个省不能同样颜色;

(3)找出所有解。

分析:

简单粗暴,直接遍历

代码如下:

#include <stdio.h>
#include <stdlib.h>

int main ( )
{
    int HuNan, JiangXi, ZheJiang, AnHui, HuBei;  // 五个省份
    int sum = 0;

    puts ( "以 湖南, 江西, 浙江, 安徽, 湖北 五个相邻省份涂色" );
    puts ( " 0 - 红  1 - 绿  2 - 蓝 \n" );

    for ( HuNan = 0; HuNan <= 2; ++ HuNan )
    {
        for ( JiangXi = 0; JiangXi <= 2; ++ JiangXi )
        {
            for ( ZheJiang = 0; ZheJiang <= 2; ++ ZheJiang )
            {
                for ( AnHui = 0; AnHui <= 2; ++ AnHui )
                {
                    for ( HuBei = 0; HuBei <= 2; ++ HuBei )
                    {
                        if ( HuNan != HuBei && HuNan != JiangXi && HuBei != AnHui && JiangXi != ZheJiang && AnHui != ZheJiang )
                        {
                            printf ( "湖南    %d\n", HuNan );
                            printf ( "江西    %d\n", JiangXi );
                            printf ( "浙江    %d\n", ZheJiang );
                            printf ( "安徽    %d\n", AnHui );
                            printf ( "湖北    %d\n\n", HuBei );
                            ++ sum;
                        }
                    }
                }
            }
        }
    }

    printf ( "共有 %d 种方案\n", sum );

    return 0;
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值