Aizu Online Judge(AOJ)の過去問から、その提出コードの解答例です。
・問題 "Symmetric Ternary Number"
https://onlinejudge.u-aizu.ac.jp/problems/0306
・対称3進数
僕が作成、提出したコードは、以下のとおりです。
・Aizu Online Judge in C++ #Volume3 - 0306 : Symmetric Ternary Number
/* Aizu Online Judge in C++ #Volume3 - 0306 : Symmetric Ternary Number https://onlinejudge.u-aizu.ac.jp/problems/0306 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; using ll=long long; int main(void){ ll n,v[15]={0},i=0; cin>>n; while(n){ v[i++]=(n+1)%3-1; n=(n-v[i-1])/3; } while(i--){ if(!v[i]){ cout<<0; }else if(v[i]>0){ cout<<'+'; }else{ cout<<'-'; } } cout<<"\n"; }
設問の出典は、プログラミング問題のオンライン採点システム「Aizu Online Judge(AOJ)」です。
http://judge.u-aizu.ac.jp/onlinejudge/