int has0(int num) { int mul = 1; while (num / 10) { if(!(num % 10)) return 0; mul *= num % 10; num /= 10; } if (0 == num) return 0; return mul * num; }
int main() { int i5 = 1, i4 = 1, i3,mul3; for (; i4 < 10; i4++) { for (i3=111; i3 < 1000; i3++) { mul3 = has0(i3); if (!mul3) break; if (i4 * mul3 > 9)break; i5 = i4 * (mul3 - 1); // -- @# 最高位是否可为0 //if (0 == i5) continue; printf("%d%d%d\n", i5, i4, i3); } } }
void main(void) { int a, b, c, d ,e; for (a = 1; a < 10; a++) for (b = 0; b < 10; b++) for (c = 0; c < 10; c++) for (d = 0; d < 10; d++) for (e = 0; e < 10; e++) if (a+b == b*c*d*e) printf("%d\n", a*10000+b*1000+c*100+d*10+e); }