1. 程式人生 > >藍橋杯比賽 —— 算式900

藍橋杯比賽 —— 算式900

問題描述:

(xxxx - xxxx)* xx = 900,其中的 x 代表0~9這10個數字,求這

三個數分別是多少?

原始碼:

#include <iostream>
#include <cmath>
using namespace std;

bool t[10] = { true, true, true, true, true, true, true, true, true, true };
bool Mytry(int p) {
	if ( !t[p] ) return false;
	else t[p] = false;
	return true;
}

int main() {
	for (int i = 10; i <= 98; i++) {
		for (int j = 9876; j >= 1234; j--) {
			int k = j - 900/i;

			if (Mytry(i%10) &&
				Mytry(i/10) &&
				Mytry(j%10) &&
				Mytry(j%100/10) &&
				Mytry(j%1000/100) &&
				Mytry(j/1000) &&
				Mytry(k%10) &&
				Mytry(k%100/10) &&
				Mytry(k%1000/100) &&
				Mytry(k/1000)) {
					if( (j-k)*i==900 ) printf("%d  %d  %d\n", j, k, i);
			}

			for (int s = 0; s <= 9; s++) t[s] = true;
		}
	}
	getchar();
	return 0;
}