Skip to content

Instantly share code, notes, and snippets.

@lovasoa
Last active April 17, 2018 08:11
Show Gist options
  • Save lovasoa/9c008e9c003b917b9deb5dab91ac7037 to your computer and use it in GitHub Desktop.
Save lovasoa/9c008e9c003b917b9deb5dab91ac7037 to your computer and use it in GitHub Desktop.
МУХА + МУХА = СЛОН
#include<iostream>
using namespace std;
// муха + муха = слон
int main() {
// Числа не могут начитаться с нуля.
// Поэтому муха >= 1000
// и слон = 2*муха содержит 4 числа, поэтому
// 2*муха <= 9999
// муха <= 4999
for(int myxa=1000; myxa<=4999; myxa++) {
bool numbers[10] = {0};
int allnums, clon=2*myxa;
// 10000*муха + слон, это большое число которое сделанное из всех цифр
// мухи и слона. Например, если муха=1234, то слон=2468 и
// 10000*муха + слон = 12342468
// в этом цикле, мы проверяем что это большое число составляют только разные цифры
for(allnums=10000*myxa+clon; allnums>0; allnums/=10) {
if(numbers[allnums%10]) break;
else numbers[allnums%10] = true;
}
if(allnums==0) cout << myxa << "+" << myxa << "=" << clon << endl;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment