AOJ : 0228 - Seven Segments (7セグメント)
問題概要
http://rose.u-aizu.ac.jp/onlinejudge/ProblemSet/description.jsp?id=0228&lang=jp
日本語の問題文なので説明省略です.
アルゴリズム
前回に表示した数字の状態を記憶しておく.
その状態から, 現在表示すべき数字に変化させるために, 2進数のどの桁を変化させたらいいかを調べるだけ.
文字列で管理して, 先頭の文字から順番に調べるだけ.
プログラム
#include <iostream> using namespace std; string s[10] = { "0111111", "0000110", "1011011", "1001111", "1100110", "1101101", "1111101", "0100111", "1111111", "1101111", }; int main(void){ int n; while(cin>>n, (n!=-1)){ string now = "0000000"; for(int i=0;i<n;i++){ int x; cin>>x; string change = "0000000"; for(int i=0;i<7;i++){ if(s[x][i] != now[i]){ change[i] = '1'; } } cout<<change<<endl; now = s[x]; } } return 0; }