天天看点

蓝桥杯 凑算式

个算式中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 是另一种解法。

这个算式一共有多少种解法?

注意:你提交应该是个整数,不要填写任何多余的内容或说明性文字。

继续阅读