信息学奥赛一本通 2069:【例2.12】糖果游戏
生活随笔
收集整理的這篇文章主要介紹了
信息学奥赛一本通 2069:【例2.12】糖果游戏
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
【題目鏈接】
ybt 2069:【例2.12 】糖果游戲
【題目考點】
1. 復合賦值表達式
表格中兩列對應寫法是等價的
| a = a + b | a += b |
| a = a - b | a -= b |
| a = a * b | a *= b |
| a = a / b | a /= b |
| a = a % b | a %= b |
【解題思路】
糖果均分后,如果有多余的,就吃掉。例如8個糖果三等分,每份2個,剩下2個吃掉。每份數量為8/2,進行整除運算。
【題解代碼】
解法1:用cin, cout
cout << setw(x) 按x位寬度輸出
#include<bits/stdc++.h> using namespace std; int main() {int a, b, c, d, e;cin >> a >> b >> c >> d >> e;a /= 3; b += a; e += a;b /= 3; a += b; c += b;c /= 3; b += c; d += c;d /= 3; c += d; e += d;e /= 3; d += e; a += e;cout << setw(5) << a << setw(5) << b << setw(5) << c << setw(5) << d << setw(5) << e; return 0; }解法2:用scanf, printf
printf("%md") 按m位寬度輸出
#include<bits/stdc++.h> using namespace std; int main() {int a, b, c, d, e;scanf("%d %d %d %d %d", &a, &b, &c, &d, &e);a /= 3; b += a; e += a;b /= 3; a += b; c += b;c /= 3; b += c; d += c;d /= 3; c += d; e += d;e /= 3; d += e; a += e;printf("%5d%5d%5d%5d%5d", a, b, c, d, e);return 0; }解法3:用數組
#include<bits/stdc++.h> using namespace std; #define M 5 int main() {int a[M];for(int i = 0; i < M; ++i)cin>>a[i];for(int i = 0; i < M; ++i){int t = a[i]/3;a[i] = t;a[(i + M - 1)%M] += t;a[(i + M + 1)%M] += t;}for(int i = 0; i < M; ++i)cout<<a[i]<<' ';return 0; }總結
以上是生活随笔為你收集整理的信息学奥赛一本通 2069:【例2.12】糖果游戏的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 信息学奥赛一本通(1106:年龄与疾病)
- 下一篇: 信息学奥赛一本通(1088:分离整数的各