100元を使って、鶏、鶏、ひよこなどの鶏を100羽購入します。
雄鶏は1羽5元、雌鶏は1羽3元、ひよこは1羽1元です。
雄鶏、鶏、ひよこを何羽購入すればよいですか?
1. 問題を分析する
- 既知: 鶏 100 羽を買うのに合計 100 元が費やされます。雄鶏 1 羽は 5 元、鶏 1 羽は 3 元、ひよこ 3 羽は 1 元です。
- 不明: g 雄鶏、m 鶏、x ひよこ
- 関係: 5 g+3 m+x/3=100、g+m+x=100。
2. 変数を定義する
分析の既知および未知に基づいて、必要に応じて変数を定義します。
//二、数据定义
int money=100,g=1,m=1,x=3;
3. データを入力します
なし。
4.データ計算
4.1 問題の範囲を決定する: 問題の要件に従って、試行する必要がある値の範囲を決定します。
お金: 100。
鶏の総数: 100 羽。
オンドリ: 最小 1、最大: (100-3-1)/5。
鶏: 最小 1、最大: 合計金額 - 購入した雄鶏の数 * 5 - 最小鶏数、つまり (金額 - 5 * g - 1)/3。
4.2 ループを使用して網羅的に列挙する: ループ構造 (for ループなど) を使用して、範囲内の各値を調べます。
g: 雄鶏の数。
while(g<=(100-3-1)/5){
g++;
}
4.3 数値を問題に持ち込んで試す: 現在の数値を問題に持ち込んで、問題の条件が満たされるかどうかを判断します。
m: 鶏の数。
鶏の数は多いものから少ないものまであります。
//四、数据计算
//输出时,按公鸡数从少到多,母鸡数从多到少的顺序输出
while(g<=(100-3-1)/5){
//母鸡最多数量
m=(money-5*g-1)/3;
while(m>1){
x=(money-g*5-m*3)*3;
if(g+m+x==100){
}
m--;
}
g++;
}
4.4 条件を満たした場合、結果を出力するなどの操作を行います。現在の値が問題の条件を満たしている場合、その値を問題の解決策として出力したり、その他の操作を実行したりできます。
//四、数据计算
//输出时,按公鸡数从少到多,母鸡数从多到少的顺序输出
while(g<=(100-3-1)/5){
//母鸡最多数量
m=(money-5*g-1)/3;
while(m>1){
x=(money-g*5-m*3)*3;
if(g+m+x==100){
//五、输出结果
cout<<g<<" "<<m<<" "<<x<<endl;
}
m--;
}
g++;
}
4.5 考えられるすべての解がなくなるまでループを続けます。
5. 結果の出力
#include<iostream>
using namespace std;
int main(){
//一、分析问题
//已知:共有100元,买100只鸡,公鸡5元1只,母鸡3元1只,小鸡1元3只
//未知:公鸡g只,母鸡m只,小鸡x只
//二、数据定义
int money=100,g=1,m=1,x=3;
//三、数据输入
//四、数据计算
//输出时,按公鸡数从少到多,母鸡数从多到少的顺序输出
while(g<=(100-3-1)/5){
//母鸡最多数量
m=(money-5*g-1)/3;
while(m>1){
x=(money-g*5-m*3)*3;
if(g+m+x==100){
//五、输出结果
cout<<g<<" "<<m<<" "<<x<<endl;
}
m--;
}
g++;
}
return 0;
}