蓝桥杯——凑算式
凑算式
B DEF
A + --- + ------- = 10
C GHI
1到9做全排列,然后把符合题目意思的输出来
比如:
6+8/3+952/714 就是一种解法,
5+3/1+972/486 是另一种解法。
#include <iostream> #include <string> using namespace std; int a[9] = {1,2,3,4,5,6,7,8,9}; int sum = 0; int sun(int *a) { double nn; nn = (double)a[0]+(double)a[1]/a[2]+(double)(a[3]*100+a[4]*10+a[5])/(a[6]*100+a[7]*10+a[8]); if(nn == 10) { return 1; } else return 0; } void fun(int *a,int m,int n) { if(m == 0) { if(sun(a) == 1) { /* for(int i=0;i<n;i++)//输出每一种情况 { cout<<a[i]; } cout<<endl; */ sum++; } } else { int t; for(int j=0;j<=m;j++) { t = a[m]; a[m] = a[j]; a[j] = t; fun(a,m-1,n); t = a[m]; a[m] = a[j]; a[j] = t; } } } int main() { fun(a,8,9); cout<<sum<<endl; return 0; }