題目敘述
每筆測資第一行有一個正整數N,接下來會有N行,每行會有兩個正整數M和K,代表要將M元分給K個人。要求輸出每個人可以分到多少錢,如果有除不進的情況則將餘數分給最後一個人。
範例輸入 #1
2
1 1
4 3
範例輸出 #1
Case 1 :
第1位 : 拿1元並說DD! BAD!
Case 2 :
第1位 : 拿1元並說DD! BAD!
第2位 : 拿1元並說DD! BAD!
第3位 : 拿2元並說DD! BAD!
解題思路
本題收資料的時候需要使用Long Long Int,並且K有可能會是0,當K是0時只需要輸出是第幾個Case就可以往下一個Case走了。
解題程式碼如下 (僅供參考):
#include <iostream>
using namespace std;
int main() {
cin.sync_with_stdio(0);
cin.tie(0);
int N;
cin >> N;
for (int i = 0; i<N; i++)
{
long long int M, K;
cin >> M >> K;
cout << "Case " << i+1 << " :\n";
if (K != 0)
{
long long int give = M/K;
long long int last = 0;
if (M % K != 0) last = M % K;
for (int i = 1; i<K; i++)
{
cout << "第" << i << "位 : 拿" << give << "元並說DD! BAD!\n";
}
cout << "第" << K << "位 : 拿" << give+last << "元並說DD! BAD!\n";
}
}
}
留言
張貼留言