C语言:问题求解方法-穷举

这篇博客探讨了如何使用C语言通过穷举方法解决排列问题、水仙花数和鸡兔同笼等经典问题。通过实例展示了穷举法在解决这类问题时的思路,并对每种问题给出了相应的代码实现。同时,文中还总结了穷举法在解决问题时的知识要点,以及作者的心得体会。
摘要由CSDN通过智能技术生成

任务代码:

问题1:

传统求解穷举方法(局限性:计算次数太多,程序运行耗时总共计算21*34*301次)

#include <stdio.h>
int main()
{
    printf("解决问题:公鸡5元一只,母鸡3元一只,小鸡1元三只,问100元买100只鸡能买公鸡,母鸡,小鸡多少?(提供所有方案)\n\n");
    int cock,hen,chick;
    float price;
    for(cock=0;cock<=20;cock++)//公鸡最多能有20只
    {
        for(hen=0;hen<=33;hen++)//母鸡最多有33只
        {
            for(chick=0;chick<=100;chick++)//小鸡最多100只
                {
                   if(cock*5+hen*3+chick/3==100&&cock+hen+chick==100&&chick%3==0)//小鸡1/3元一只且要被3除尽,小鸡只能以3只3只的买,也就是说钱最小单位1元不可能有1/3元!!!

                   { printf("公鸡:%d 母鸡:%d 小鸡:%d\n",cock,hen,chick);}
                }
        }
    }
    return 0;
}
问题改进:

#include <stdio.h>
int main()
{
    printf("解决问题:公鸡5元一只,母鸡3元一只,小鸡1元三只,问100元买100只鸡能买公鸡,母鸡,小鸡多少?(提供所有方案)\n\n");
    int cock,hen,chick;
    float price;
    for(cock=0;cock<=20;cock++)//公鸡最多能有20只
    {
        for(hen=0;hen<=33;hen++)//母鸡最多有33只
        {
             chick=100-cock-hen;//简化小鸡的计算循环
                   if(cock*5+hen*3+chick/3==100 && chick%3==0)//小鸡1/3元一只且要被3除尽,小鸡只能以3只
  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值