当前位置: 首页 > article >正文

【蓝桥杯】带分数

带分数

题目要求用一个a+b/c的形式得到一个值,而且只能在1~9里面不重复的组合。

可以对1~9进行全排列,然后不断划分区间。

#include<iostream>
#include<vector>
using namespace std;
int st[15];
int num[15];
int res;
int n;

int calc(int l, int r)
{
    int res = 0;
    for (int i = l; i <= r; i++)
    {
        res = res * 10 + num[i];
    }
    return res;
}

void dfs(int u)
{
    //分解
    if (u == 10)
    {
        for (int i = 1; i <= 7; i++)
        {
            for (int j = i + 1; j <= 8; j++)
            {
                int a = calc(0, i);
                int b = calc(i + 1, j);
                int c = calc(j + 1, 9);
                if (a * c + b == n * c)
                {
                    res++;
                }
            }
        }
    }

    //组合1~9的全排列
    for (int i = 1; i <= 9; i++)
    {
        if (!st[i])
        {
            //如果没有排列过
            num[u] = i;
            st[i] = true;
            dfs(u + 1);
            st[i] = false;
            num[u] = -1;
        }
    }
}

int main(void)
{
    cin >> n;
    dfs(1);
    printf("%d", res);
    return 0;
}

http://www.kler.cn/news/156326.html

相关文章:

  • 2023.12.2 关于 Spring AOP 详解
  • 最有效的wordpress禁止生成缩略图教程
  • 全局变量为什么没有野指针
  • C++ 从函数返回指针
  • 目标检测YOLO系列从入门到精通技术详解100篇-【图像处理】目标检测
  • 【数值计算方法(黄明游)】函数插值与曲线拟合(一):Lagrange插值【理论到程序】
  • 21、Resnet50 中包含哪些算法?
  • Python:核心知识点整理大全1-笔记
  • 基于SSM的网上手机销售系统
  • 制作一个RISC-V的操作系统一-计算机系统漫游
  • 问CHAT:怎样保持数据库中数据的完整性?
  • 23种设计模式之C++实践(二)
  • java基础之HashSet详解
  • uniapp连接蓝牙称(接收,发送)
  • Oracle下统计平均用餐时间、用餐总量、好评率
  • Mars3d标绘的时候通过绑定单击事件,查询点击落点的图层类型
  • “微流控芯片建模与肿瘤标志物/感染性疾病细胞分析:合成生物学的新前沿“
  • 编织魔法——我与计算机的不解之缘
  • STL中使用[]重载的类
  • dart 控制台应用
  • 小程序如何刷新当前页面?
  • SQL server 2016安装
  • IEEE 机器人最优控制开源库 Model-based Optimization for Robotics
  • 【开源】基于JAVA的校园电商物流云平台
  • 【C++】sizeof()、strlen()、length()\以及size()用法区别
  • 【每日一题】1038. 从二叉搜索树到更大和树-2023.12.4
  • python-GC机制、装饰器、生成器、迭代器、三元表达式、列表生成式、生成器表达式、函数递归、面向对象、
  • 【数据结构】八大排序 (三)
  • 如何精准操作无人机自动停机坪?
  • (c语言进阶)作业讲解