Below is the syntax highlighted version of Conway.java
from §1.5 Input and Output.
/****************************************************************************** * Compilation: javac Conway.java * Execution: java Conway 1 * Dependencies: StdOut.java StdIn.java * * References: http://mathworld.wolfram.com/LookandSaySequence.html * http://www.btinternet.com/~se16/js/lands2.htm * * % echo 1 | java Conway * 1 1 * * % echo 1 | java Conway | java Conway * 2 1 * * % echo 1 | java Conway | java Conway * 1 2 1 1 * * % echo 1 | java Conway | java Conway | java Conway | java Conway * 1 1 1 2 2 1 * * % echo 1 | java Conway | java Conway | java Conway | java Conway | java Conway * 3 1 2 2 1 1 * * % echo 1 | java Conway | java Conway | java Conway | java Conway | java Conway | java Conway * 1 3 1 1 2 2 2 1 * * Remarks * ------- * - only involves digits 1, 2, and 3 * - number of digits is approximately proportional to 1.303577^N * ******************************************************************************/ public class Conway { public static void main(String[] args) { int inarow = 1; int current = StdIn.readInt(); while (!StdIn.isEmpty()) { int next = StdIn.readInt(); if (next != current) { StdOut.print(inarow + " " + current + " "); inarow = 0; current = next; } inarow++; } StdOut.println(inarow + " " + current); } }