2016年第七届蓝桥杯C/C++程序设计本科B组省赛 凑算式(结果填空)

时间:2022-09-09 23:26:04

凑算式

如图,这个算式中A~I代表1~9的数字,不同的字母代表不同的数字。

2016年第七届蓝桥杯C/C++程序设计本科B组省赛 凑算式(结果填空)
比如:
6+8/3+952/714 就是一种解法,
5+3/1+972/486 是另一种解法。

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

答案:29

学习使用next_permutaition(a,a+n)全排列函数

#include<stdio.h>
#include<algorithm>
using namespace std;

int main()
{
int a[10],i,sum=0;
for(i=0;i<9;i++)
a[i]=i+1;
for(i=0;i<9;i++)
printf("%d ",a[i]);
while(next_permutation(a,a+9))
{
int t1=a[0]*a[2]*(100*a[6]+10*a[7]+a[8]);
int t2=a[1]*(100*a[6]+10*a[7]+a[8]);
int t3=a[2]*(100*a[3]+10*a[4]+a[5]);
int t4=10*a[2]*(100*a[6]+10*a[7]+a[8]);
if(t1+t2+t3==t4)
sum++;
}
printf("%d\n",sum);
return 0;
}