/* This program demonstrates "nested for, continue, and break." */ class SendMoreMoney { public static void main(String[] args) { outer: for (int s=1; s<=9; s++) { for (int e=0; e<=9; e++) { if (e==s) continue; for (int n=0; n<=9; n++) { if (n==s || n==e) continue; for (int d=0; d<=9; d++) { if (d==s || n==e || d==n) continue; for (int m=1; m<=9; m++) { if (m==s || m==e || m==n || m==d) continue; for (int o=0; o<=9; o++) { if (o==s || o==e || o==n || o==d || o==m) continue; for (int r=0; r<=9; r++) { if (r==s || r==e || r==n || r==d || r==m || r==o) continue; for (int y=0; y<=9; y++) { if (y==s || y==e || y==n || y==d || y==m || y==o || y==r) continue; int send = 1000*s + 100*e + 10*n + d; int more = 1000*m + 100*o + 10*r + e; int money = 10000*m + 1000*o + 100*n + 10*e + y; if (send + more == money) { System.out.printf("S = %d, E = %d, N = %d, D = %d," + "M = %d, O = %d, R = %d, Y = %d%n", s, e, n, d, m, o, r, y); System.out.printf("%d + %d = %d%n", send, more, money); break outer; } } } } } } } } } } }