Aizu Online Judge(AOJ)の過去問から、その提出コードの解答例です。
・問題 "FizzBuzz"
https://onlinejudge.u-aizu.ac.jp/problems/0221
・ゲームの脱落者判定
僕が作成、提出したコードは、以下のとおりです。
・Aizu Online Judge in C++ #Volume2 - 0221 : FizzBuzz
/* Aizu Online Judge in C++ #Volume2 - 0221 : FizzBuzz https://onlinejudge.u-aizu.ac.jp/problems/0221 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; using ll=long long; ll n,m,num; bool tf[10000]; int main(void){ while(cin>>n>>m,n){ num=n; for(ll i=0;i<n;i++){ tf[i]=true; } ll i=0,j=1; for(;num>1 && j<=m;j++){ string s; cin>>s; string t=to_string(j); if(j%15==0){ t="FizzBuzz"; }else if(j%5==0){ t="Buzz"; }else if(j%3==0){ t="Fizz"; } if(s!=t){ num--,tf[i]=false; } i=(i+1)%n; while(!tf[i]){ i=(i+1)%n; } } for(;j<=m;j++){ string s; cin>>s; } ll k=0; for(ll i=0;i<n;i++){ if(tf[i]){ cout<<(k++ ? " " : "")<<i+1; } } cout<<"\n"; } return 0; }
設問の出典は、プログラミング問題のオンライン採点システム「Aizu Online Judge(AOJ)」です。
http://judge.u-aizu.ac.jp/onlinejudge/