信息学奥赛一本通 2028:【例4.14】百钱买百鸡
生活随笔
收集整理的這篇文章主要介紹了
信息学奥赛一本通 2028:【例4.14】百钱买百鸡
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
【題目鏈接】
ybt 2028:【例4.14】百錢買百雞
題目翻譯:公雞5錢1只,母雞3錢1只,小雞1錢3只,花100錢買到100只雞,請問公雞,母雞,小雞各幾只。
【題目考點】
1. 枚舉
【解題思路】
解法1:枚舉a,b,c三個變量
設(shè)公雞a只,母雞b只,小雞c只,則有方程組:
5a+3b+c/3=1005a+3b+c/3=1005a+3b+c/3=100
a+b+c=100a+b+c=100a+b+c=100
a,b,c是整數(shù),且c是3的倍數(shù)
根據(jù)方程可得:
0≤5a≤100?0≤a≤200\leq 5a\leq 100 \Rightarrow 0\leq a\leq 200≤5a≤100?0≤a≤20
0≤3b≤100?0≤b≤330\leq 3b\leq 100 \Rightarrow 0\leq b\leq 330≤3b≤100?0≤b≤33
0≤c≤1000\leq c\leq 1000≤c≤100
- 枚舉對象:a,b,c
- 枚舉范圍:
a,b,c是整數(shù)
0≤a≤200\leq a\leq 200≤a≤20
0≤b≤330\leq b\leq 330≤b≤33
0≤c≤1000\leq c\leq 1000≤c≤100
c是3的倍數(shù) - 判斷條件:
5a+3b+c/3=1005a+3b+c/3=1005a+3b+c/3=100
a+b+c=100a+b+c=100a+b+c=100
注:a,b范圍取0~100也可以解該問題,循環(huán)次數(shù)會多一些,運行時間也不會超時。
解法2:枚舉a,b兩個變量
已知a+b+c=100a+b+c=100a+b+c=100,則有c=100?a?bc=100-a-bc=100?a?b
- 枚舉對象:a,b
- 枚舉范圍:a,b是整數(shù)
0≤a≤200\leq a\leq 200≤a≤20
0≤b≤330\leq b\leq 330≤b≤33
c=100?a?bc=100-a-bc=100?a?b - 枚舉條件:
c是3的倍數(shù)
5a+3b+c/3=1005a+3b+c/3=1005a+3b+c/3=100
【題解代碼】
解法1:枚舉a,b,c
#include<bits/stdc++.h> using namespace std; int main() {int a, b, c;for(a = 0; a <= 20; ++a)for(b = 0; b <= 33; ++b)for(c = 0; c <= 100; ++c){if(a+b+c == 100 && c%3 == 0 && 5*a+3*b+c/3 == 100)cout << a << ' ' << b << ' ' << c << endl;}return 0; }解法2:枚舉a,b
#include<bits/stdc++.h> using namespace std; int main() {int a, b, c;for(a = 0; a <= 20; ++a)for(b = 0; b <= 33; ++b){c = 100 - a - b;if(c%3 == 0 && 5*a+3*b+c/3 == 100)cout << a << ' ' << b << ' ' << c << endl;}return 0; }總結(jié)
以上是生活随笔為你收集整理的信息学奥赛一本通 2028:【例4.14】百钱买百鸡的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 信息学奥赛一本通(2062:【例1.3】
- 下一篇: 信息学奥赛一本通 1145:字符串p型编