Il s'avère que l'arrangement complet peut également être utilisé comme ceci

Réimprimé: Résumé des sujets de la 7e Blue Bridge Cup en 2016
http://blog.csdn.net/qq_34202873/article/details/79646517

Formule d'imputation

Insérez la description de l'image ici

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

Combien de solutions y a-t-il dans cette formule?

Remarque: votre soumission doit être un nombre entier, ne remplissez aucun contenu supplémentaire ou texte explicatif.
Réponse: 29

Idée de résolution de problèmes: 1-9 arrangement complet, j'étais trop à la pêche, je n'y ai pas pensé

Méthode 1 (facile à penser): utilisez la fonction next_permutation () en C ++ pour organiser tous les 1-9

Lorsque vous utilisez la fonction de permutation complète, les éléments du tableau doivent être triés de petit à grand. Utilisez la structure do while pour afficher toutes les permutations. La permutation initiale utilisant la structure while ne sera pas générée. Si les éléments du tableau ne sont pas triés de petit à grand , ils ne peuvent pas tous les afficher. Permutation complète

Méthode deux (vitesse rapide): solution de traversée en profondeur d'abord (disposition complète de 1 à 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;
} 

Je suppose que tu aimes

Origine blog.csdn.net/Helinshan/article/details/109051700
conseillé
Classement