第五屆藍橋杯總結
阿新 • • 發佈:2018-03-22
amp 說明文 tro ... 註意 家裏 例如 多少 ....
第一題 啤酒和飲料
啤酒每罐2.3元,飲料每罐1.9元。小明買了若幹啤酒和飲料,一共花了82.3元。
我們還知道他買的啤酒比飲料的數量少,請你計算他買了幾罐啤酒。
註意:答案是一個整數。請通過瀏覽器提交答案。
不要書寫任何多余的內容(例如:寫了飲料的數量,添加說明文字等)。
#include <iostream>
using namespace std;
int main()
{
for (int i = 0; i <= 41; i++)
{
for (int j = i + 1; j <= 80 ; j++)
{
double ans = 2.3*i + 1.9*j;
if (ans == 82.3)
{
cout << i << " " << j << " " << ans << endl;
break;
}
}
}
return 0;
}
答案:11
第二題:切面條
一根高筋拉面,中間切一刀,可以得到2根面條。 如果先對折1次,中間切一刀,可以得到3根面條。 如果連續對折2次,中間切一刀,可以得到5根面條。 那麽,連續對折10次,中間切一刀,會得到多少面條呢? 答案是個整數,請通過瀏覽器提交答案。不要填寫任何多余的內容。
題解:找規律
#include <iostream>
using namespace std;
void solve()
{
int s = 2;
int ans = s;
int N;
cin >> N;
// 0 : 2
// 1 : 2*2 - 1 = 3
// 2 : 2*3 - 1 = 5
for (int i = 1; i <= N; i++)
{
ans = s * 2 - 1;
s = ans;
}
cout << ans << endl;
}
int main()
{
solve();
return 0;
}
第三題:李白打酒
話說大詩人李白,一生好飲。幸好他從不開車。
一天,他提著酒壺,從家裏出來,酒壺中有酒2鬥。他邊走邊唱:
無事街上走,提壺去打酒。
逢店加一倍,遇花喝一鬥。
這一路上,他一共遇到店5次,遇到花10次,已知最後一次遇到的是花,他正好把酒喝光了。
請你計算李白遇到店和花的次序,可以把遇店記為a,遇花記為b。則:babaabbabbabbbb 就是合理的次序。
像這樣的答案一共有多少呢?請你計算出所有可能方案的個數(包含題目給出的)。
題解:遞歸.....一定要註意遞歸結束條件.........店為0,花為0,酒為0,且!最後一個遇到的應該是花,也就是 b。遞歸的時候也要判斷條件。
#include <iostream>
#include <string>
using namespace std;
int ans;
int N = 2;
void dfs(int dian, int hua, string s, int n)
{
if (!n && !hua && !dian && s[14] == ‘b‘)
{
cout << s << endl;
ans++;
return;
}
if (dian > 0) {
dfs(dian - 1, hua, s+"a", n*2);
}
if (hua > 0 && n > 0) {
dfs(dian, hua - 1, s+"b", n-1);
}
}
void solve()
{
dfs(5, 10, "", N);
cout << ans << endl;
}
int main()
{
solve();
return 0;
}
答案:14
第五屆藍橋杯總結