惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
V2EX
J
Java Code Geeks
月光博客
月光博客
博客园_首页
The GitHub Blog
The GitHub Blog
Vercel News
Vercel News
B
Blog RSS Feed
博客园 - 聂微东
宝玉的分享
宝玉的分享
T
Tailwind CSS Blog
Jina AI
Jina AI
S
SegmentFault 最新的问题
B
Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
有赞技术团队
有赞技术团队
Hugging Face - Blog
Hugging Face - Blog
Google DeepMind News
Google DeepMind News
阮一峰的网络日志
阮一峰的网络日志
The Cloudflare Blog
量子位
Martin Fowler
Martin Fowler
博客园 - Franky
大猫的无限游戏
大猫的无限游戏
博客园 - 叶小钗

博客园 - gxc

C#2.0中的泛型约束(转载) 解决‘“System.Configuration.ConfigurationSettings.AppSettings”已过时’的警告 《雷神之锤III》里求平方根倒数的函数 回溯法(vc)八皇后问题 六十六条经典禅语 prototype.js和Ajax 悖论 标签的使用(2) 标签的使用(1) 自底向上的归并排序 自顶向下的归并排序 归并排序之归并算法 Josephus问题(循环链表) 找质数算法(Sieve of Eratosthenes筛法) 堆排序 直接选择排序 快速排序算法 Some of the new features from ASP.NET 2.0 在ASP.NET中使用AJAX
回溯法(vc)百鸡百钱问题
gxc · 2007-02-05 · via 博客园 - gxc

百钱百鸡问题
中国古代数学家张丘建在他的《算经》中提出了著名的“百钱买百鸡问题”:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何?

#include <iostream.h>
void main()
{
    
int m=0;
    
int n=2;
    
int ok=0;
    
int chicken[]={0,0,0};
    
double money[]={5,3,1.0/3};
    
    
do
    
{
        
if(m==n)
        
{
                
int c=0;
                
double sum=0;
                
for(int i=0;i<=m;i++)
                
{
                    c
+=chicken[i];
                    sum
+=chicken[i]*money[i];
                }

                ok
=(c==100&&sum==100);

                
if(ok)
                
{
                    
//output
                    cout<<"cocks= "<<chicken[0];
                    cout
<<", hens= "<<chicken[1];
                    cout
<<", chicks= "<<chicken[2]<<endl;
                    chicken[m]
=0;
                    m
--;            
                }

            
while(chicken[m]*money[m]>=100)
                    
{
                        chicken[m]
=0;
                        m
--;
                        
                    }

                    chicken[m]
++;
        }

            
else
            
{
                m
++;
            }

    }
while(m>=0);
}