アルゴ式(beta版)の「ビット演算 (8 章:ビット演算の応用)」からの出典です。
algo-method.com
アルゴ式とは...
>・プログラミングや情報科学をコツコツ学べる「教科書」
>・学んだ内容をゲーム感覚で大量に実践できる「練習問題」
>の2つで構成される、Web上で完結した学習コンテンツです。
C++による「ビット演算 (8 章:ビット演算の応用)」- Q3. オセロ盤の圧縮
僕が作成、提出したコードは、以下のとおりです。
Q3. オセロ盤の圧縮
/* アルゴ式(beta版):C++による「ビット演算(8章)」- Q3. オセロ盤の圧縮 Q3. オセロ盤の圧縮 https://algo-method.com/tasks/1069 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; using ll=long long; int main(void){ vector<ll> x(8); for(ll i=0;i<8;i++){ cin>>x[i]; } vector<string> s(8); for(ll i=0;i<8;i++){ for(ll j=0;j<8;j++){ ll x0=x[i]&1<<(15-2*j); ll x1=x[i]&1<<(14-2*j); char c; if(!x0 && !x1){ c='.'; }else if(!x0 && x1){ c='o'; }else if(x0 && !x1){ c='x'; } s[i]+=c; } } for(ll i=0;i<8;i++){ cout<<s[i]<<endl; } return 0; }
設問の出典は、情報科学をコツコツ積み立てて学習できるサービス「アルゴ式(beta版)」です。
algo-method.com