Алгоритмы на С++
Решение задачи 3 главы 1
Cоставить программу поиска всех решений ребуса VOLVO + FIAT = MOTOR. Разным буквам соответствуют разные цифры, одинаковым – одинаковые. Старшая цифра каждого числа отличается от нуля.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
void itmathrepetitor() { // www.itmathrepetitor.ru set m; int V, O, L, F, I, A, T, M, R; F=9; m.insert(F); for (V=1; V<=7; V++) { M=V+1; m.insert(M); m.insert(V); for (O=1; O<=8; O++) { if (m.find(O)==m.end()) { m.insert(O); for (T=1; T<=8; T++) { if (m.find(T)==m.end()) {// www.itmathrepetitor.ru m.insert(T); R=(O+T)%10; if (m.find(R)==m.end()) { m.insert(R); for (L=2; L<=8; L++) { if (m.find(L)==m.end()) { m.insert(L); for (I=10-L; I<=8; I++) { if (m.find(I)==m.end()) {// www.itmathrepetitor.ru m.insert(I); for (A=0; A<=8; A++) { if (m.find(A)==m.end()) { if ((V*10+O)*1001+L*100+((F*10+I)*10+A)*10+T== ((M*100+T)*10+O*101)*10+R) { cout<<V<<O<<L<<V<<O<<"+"<<F<<I<<A<<T<<"="<<M<<O<<T<<O<<R<<endl; } } } m.erase(I); } } m.erase(L); } } m.erase(R); } m.erase(T); } } m.erase(O); } } m.erase(M); m.erase(V); } m.erase(F); } |