Portál AbcLinuxu, 14. listopadu 2025 09:03
Ř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.