Resulta que el arreglo completo también se puede usar así

Reimpreso: Resumen de los temas de la 7ma Copa Blue Bridge en 2016
http://blog.csdn.net/qq_34202873/article/details/79646517

Fórmula de imputación

Inserte la descripción de la imagen aquí

这个算式中A~I代表1~9的数字,不同的字母代表不同的数
比如:
6+8/3+952/714 就是一种解法,
5+3/1+972/486 是另一种解法。

¿Cuántas soluciones hay en esta fórmula?

Nota: Su envío debe ser un número entero, no complete ningún contenido adicional o texto explicativo.
Respuesta: 29

Idea para resolver problemas: arreglo completo del 1 al 9, estaba pescando demasiado, no se me ocurrió

Método uno (fácil de pensar): use la función next_permutation () en C ++ para organizar todos los 1-9

Cuando se usa la función de permutación completa, los elementos de la matriz deben ordenarse de pequeños a grandes. Use la estructura do while para generar todas las permutaciones. La permutación inicial que usa la estructura while no se generará. Si los elementos de la matriz no se ordenan de pequeños a grandes , no pueden mostrar todos. Permutación completa

Método dos (velocidad rápida): solución transversal en profundidad (disposición completa de 1 a 9)

方法1:
#include<stdio.h>
#include<algorithm>
using namespace std;
int main()
{
	double a[10]={0,1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0};
	int ans=0;
	double left;
	do
	{
		//也可以用数组输出全排列,前提数组内元素不多,不然输出的数量太多了
		left=a[1]+a[2]/a[3]+(a[4]*100+a[5]*10+a[6])/(a[7]*100+a[8]*10+a[9]);
		if(left==10.0)
			ans++;
	}while(next_permutation(a+1,a+10));//注意这里是+10,而不是+9
	printf("%d\n",ans);
	return 0;
}


方法2:
#include<stdio.h>
#include<algorithm>
using namespace std;
double a[10];
int book[10],sum;
void dfs(int step)
{
	int i;
	if(step==10)
	{
		if(a[1]+a[2]/a[3]+(a[4]*100+a[5]*10+a[6])/(a[7]*100+a[8]*10+a[9])==10.0)
			sum++;
		return;
	}
	for(i=1;i<=9;i++)
	{
		if(book[i]==0)
		{
			a[step]=i;
			book[i]=1;
			dfs(step+1);
			book[i]=0;
		}
	}
	return;
}
int main()
{
	sum=0;
	dfs(1);
	printf("%d\n",sum);
	return 0;
} 

Supongo que te gusta

Origin blog.csdn.net/Helinshan/article/details/109051700
Recomendado
Clasificación