天天看點

藍橋杯 湊算式

個算式中A~I代表0~9的數字,不同的字母代表不同的數字。

比如:

6+8/3+952/714 就是一種解法,

#include<stdio.h>
int main()
{
	int a, b, c, d, e, f, g, h, i, xx = 0;
	for(a=1;a<10;a++)
		for(b=1;b<10;b++)
			for(c=1;c<10;c++)
				for(d=1;d<10;d++)
					for(e=1;e<10;e++)
						for(f=1;f<10;f++)
							for(g=1;g<10;g++)  //當int不行的時候 可以考慮用别的數字!!!
								for(h=1;h<10;h++)
									for (i = 1;i < 10;i++)//當這個數字乘1.0後或者就可以表示浮點型!!!
									{
										if ((a + b*1.0 / c + (100 * d + 10 * e + f)*1.0 / (100 * g + 10 * h + i) == 10) &&
											a != b&&a != c&&a != d&&a != e&&a != f&&a != g&&a != h&&a != i
											&&b != c&&b != d&&b != e&&b != f&&b != g&&b != h&&b != i
											&&c != d&&c != e&&c != f&&c != g&&c != h&&c != i
											&&d != e&&d != f&&d != g&&d != h&&d != i
											&&e != f&&e != g&&e != h&&e != i
											&&f != g&&f != h&&f != i
											&&g != h&&g != i
											&&h != i //暴力突破算了好久!!!
											&& ((b*(100 * g + 10 * h + i) + c*(100 * d + 10 * e + f)) % (c*(100 * g + 10 * h + i))==0
												))
										{
											printf("%d+%d/%d+%d%d%d/%d%d%d\n", a, b, c, d, e, f, g, h, i);
											xx++;
										}

									}
	printf("%d", xx);
	return 0;
}
           

5+3/1+972/486 是另一種解法。

這個算式一共有多少種解法?

注意:你送出應該是個整數,不要填寫任何多餘的内容或說明性文字。

繼續閱讀