lanqiao OJ 649 算式900

简介: lanqiao OJ 649 算式900

1.算式900 - 蓝桥云课 (lanqiao.cn)

这个题跟前面那个寒假作业差不多,比那个还简单,就是排一下序,把所有的数都记录一遍,当长度够的时候就进行特判,还有值得一提的是,因为我们要求的是4位数,4位数,2位数,所以这三个数的开头值不能是0,要不然就会使数变成低一位数,虽然也是等于900,但是最后使不符合题意的。

#include<iostream>
#include<cstring>
#include<algorithm>
 
using namespace std ;
int v[20] ;
int a , b , c ;
int path[20];
void dfs(int u){
  if(u == 1 &&path[0]==0) return ;
  if(u==5 && path[4] == 0) return ;
  if(u==9 && path[8] == 0 ) return ;
  if(u == 10){
    int x = path[0] * 1000 + path[1] * 100 + path[2] * 10 + path[3] ;
    int y = path[4] * 1000 + path[5] * 100 + path[6] * 10 + path[7] ;
    int z = path[8] * 10 + path[9] ;
    if(x == 5012 && y == 4987 && z == 36) return ;
    
    if((x - y ) * z  == 900 && x && y && z){
      //for(int i = 0 ; i < 10 ; i ++) cout << path[i] << endl; 
      a = x , b = y , c = z ; return ;
    }else return ;
    
  }
  for(int i = 0 ; i < 10 ; i ++){
    if(!v[i]){
      path[u] = i ;
      v[i] = 1 ;
      dfs(u + 1) ;
      v[i] = 0 ;
    }
  }
  return ;
}
 
int main(){
  dfs(0);
  cout << "(" << a << "-" << b <<")*" << c<<"=900"<< endl ;
}
相关文章
lanqiao OJ 364 跳石头
lanqiao OJ 364 跳石头
lanqiao OJ 1030 蓝肽子序列
lanqiao OJ 1030 蓝肽子序列
lanqiao OJ 3513 岛屿个数(2023省赛)
lanqiao OJ 3513 岛屿个数(2023省赛)
lanqiao OJ 664 方格填数
lanqiao OJ 664 方格填数
lanqiao OJ 108 发现环
lanqiao OJ 108 发现环
lanqiao OJ 689 四阶幻方
lanqiao OJ 689 四阶幻方
lanqiao OJ 1388 寒假作业
lanqiao OJ 1388 寒假作业