AOJ0228 Seven Segments
問題リンク Seven Segments
- 解法
0〜9を"0""1"で表現しておきます。ある数xからyへ変更するには、それらの間で0と1が反転しているビットの所に1を立てればいいです。
- ソース
import java.util.Scanner; //Seven Segments public class AOJ0228 { public static void main(String[] args) { String[] seg = {"1111110", "0110000","1101101","1111001","0110011","1011011","1011111","1110010","1111111","1111011"}; Scanner sc = new Scanner(System.in); while(true){ int n = sc.nextInt(); if(n==-1)break; String s = "0000000"; while(n--!=0){ String t = seg[sc.nextInt()]; char[] r = new char[7]; for(int i=0;i<7;i++)r[i]=t.charAt(6-i)==s.charAt(6-i)?'0':'1'; System.out.println(r); s = t; } } } }