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 ;
}
目录
相关文章
|
1月前
lanqiao OJ 1030 蓝肽子序列
lanqiao OJ 1030 蓝肽子序列
35 2
|
1月前
lanqiao OJ 689 四阶幻方
lanqiao OJ 689 四阶幻方
24 0
|
1月前
lanqiao OJ 664 方格填数
lanqiao OJ 664 方格填数
11 1
|
1月前
lanqiao OJ 3513 岛屿个数(2023省赛)
lanqiao OJ 3513 岛屿个数(2023省赛)
14 2
|
1月前
lanqiao OJ 108 发现环
lanqiao OJ 108 发现环
12 1
|
30天前
lanqiao oj 186 糖果(状态压缩dp)
lanqiao oj 186 糖果(状态压缩dp)
12 0
|
1月前
lanqiao OJ 2143 最少刷题数
lanqiao OJ 2143 最少刷题数
12 0
|
29天前
lanqiao oj 1628 最短循环节问题
lanqiao oj 1628 最短循环节问题
7 0
LeetCode每日一题(1)——最大回文数乘积
LeetCode每日一题(1)最大回文数乘积 1.题目 2.示例 3.思路 1.生成位数符合要求的递减的回文数 2.判断回文数是否符合要求 4.代码 5.复杂度分析
104 0
|
算法 Java
力扣LeetCode初级算法(两数之和,有效的数独)
力扣LeetCode初级算法(两数之和,有效的数独)
185 0
力扣LeetCode初级算法(两数之和,有效的数独)