Portál AbcLinuxu, 13. května 2025 19:04
Řešení dotazu:
// C++ #include <iostream> using namespace std; void solve_recursive(int level, int values[10], bool set[10]) { if (level == 10) { // test podmienky if (values[0]*100000 + values[1]*10000 + values[0]*1000 + values[2]*100 + values[3]*10 + values[4] - (values[5]*1000 + values[6]*100 + values[7]*10 + values[8]) * (100 * values[9] + 10 *values[2] + values[3]) == values[0]*10000 + values[1]*1000 + values[0]*100 + values[2]*10 + values[3]) { for (int i = 0; i < 10; i++) cout << (char) ('a' + i) << ":" << values[i] << ", "; cout << endl; } } else { for (int i = 0; i < 10; i++) if (!set[i]) { set[i] = true; values[level] = i; solve_recursive(level + 1, values, set); set[i] = false; } } } int main() { int values[10]; // mozno pouzit aj cyklus ;) bool set[10]={false, false, false, false, false, false, false, false, false, false}; solve_recursive(0, values, set); return 0; }
000000 - 0000 * 000 = 00000
#include <iostream> #include <algorithm> int main() { int ints[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; int &A = ints[0]; int &B = ints[1]; int &C = ints[2]; int &D = ints[3]; int &E = ints[4]; int &F = ints[5]; int &G = ints[6]; int &H = ints[7]; int &I = ints[8]; int &J = ints[9]; do { if ((100000*A+10000*B+1000*A+100*C+10*D+E) - (1000*F+100*G+10*H+I) * (100*J+10*C+D) == (10000*A+1000*B+100*A+10*C+D)) { std::cout << A << B << A << C << D << E << " - " << F << G << H << I << " * " << J << C << D << " = " << A << B << A << C << D << "\n"; } } while (std::next_permutation (ints, ints+10)); }
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.