1209. 带分数 刷题笔记

news2024/11/16 2:39:24

思路  暴力匹配 

读入目标数 n

看n是否与a+b/c相等

因为c++里面的除法是整除

我们将 n==a+b/c

转换为 c*n==a*c+b

那么如何获得a,b,c

依题意 a,b,c三个数由1-9九个数字组成

且每个数字只能出现一次

由此 我们可以搜出123456789的全部排列方式 

然后 每次将这个九位数分成三部分

例如 a=12,b=4567,c=89

又假如 当前排列为 985476321

获得a=985,b=476,c=321;

或者

a=98,b=5476,c=321;

枚举出所有的分法

同时与目标值匹配即可

若相等 则计数++

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring >
using namespace std;
int n,cnt;
const int N=10;
bool used[N];
int st[N];
int num[10]={1,2,3,4,5,6,7,8,9};
int cal(int i,int j);
void dfss()
    {
        //双循环 枚举出所有的分法 
            for(int i=1;i<=6;i++){
                for(int j=i+1;j<=8;j++){
                    int a=cal(1,i);
                    int b=cal(i+1,j);
                    int c=cal(j+1,9);
                    //cout<<a<<endl<<b<<endl<<c<<endl;
                    if(c*n==a*c+b){
                        
                        cnt++;
                    }
                }
            }
        
        //cout<<dsf(1);
    }
void dfs(int u){
    if(u>9){
        //当u>9说明已经搜索出了一个排列
        //修改num内存的值与当前排列相同 
        int ans=0;
        for(int i=1;i<=9;i++){
            num[i]=st[i] ;
            
        //    cout<<num[i]<<' ';
        }
    
        dfss();//计算当前排列是否匹配目标值 
        return ;
    }
    for(int i=1;i<=9;i++){
        if(!used[i]){
            used[i]=true;
            st[u]=i;
            dfs(u+1);
            used[i]=false;
            st[u]=0;
        }
        
    }
    
    

int cal(int i,int j){
    
    int res=0;
    for( ;    i<=j;i++){
        res=res*10+num[i];
    }
    //将num的值转化为a,b,c的值 
    return res;
}

int main(){
    cin>>n;
    dfs(1);
    cout<<cnt;
    
    return 0;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1482743.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

I/O:标准IO(二)

一、标准IO操作函数 1.fgets、fputs int fputs(const char *s, FILE *stream); 功能描述&#xff1a;将字符串s写入stream指向的文件中 返回数&#xff1a;成功写入文件中数据的字节数 int puts(const char* s) 功能描述&#xff1a;将字符串s写入终端&#xff1b; 返回值&…

mysql数据库操作小寄巧

目录 json字段查询时间相关只有日期只有时间又有时间又有日期时间比较时间运算 某字段同的取最新数据&#xff08;软性的新数据覆盖旧数据查找&#xff09;sql_modeonly_full_group_by的解决办法优化思路 json字段查询 查询某个json字段&#xff08;xx&#xff09;的某个属性下…

kafka架构详解

文章目录 概述kafaka架构Kafka的设计时什么样的Zookeeper 在 Kafka 中的作用 概述 Apache Kafka 是分布式发布 - 订阅消息系统&#xff0c;在 kafka 官网上对 kafka 的定义&#xff1a;一个分布式发布 - 订阅消息传递系统。 Kafka 最初由 LinkedIn 公司开发&#xff0c;Linked…

2024.03.02 homework math

2024.03.02 homework math 1&#xff1a;路程问题&#xff0c;等量关系&#xff0c;全程的路程。 2&#xff1a;路程问题&#xff0c;等量关系&#xff0c;全程总时间

初阶数据结构:栈与队列的扩展补充

目录 1. 栈与队列练习题1.1 栈的括号匹配问题1.2 用队列来实现栈1.3 用栈来实现队列1.4 扩展&#xff1a;循环队列 1. 栈与队列练习题 1.1 栈的括号匹配问题 题目信息&#xff1a; 题目链接&#xff1a; 括号匹配问题 思路&#xff1a; 利用栈的后进先出特性来实现括号的匹配 …

opencascade c#例程解析

1.编译 将msvc.bat文件拖入vs2022的x64 native tools&#xff0c;即可 2.about.xaml <Windowxmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"x:Class"IE_WPF_WinForms…

吴恩达机器学习笔记十四 多输出的分类 多类和多标签的区别 梯度下降优化 卷积层

这里老师想讲的是multiclass classification和multilable classification的区别&#xff0c;下面是我从其他地方找到的说法: Multiclass classification 多类分类 意味着一个分类任务需要对多于两个类的数据进行分类。比如&#xff0c;对一系列的橘子&#xff0c;苹果或者梨的…

QT之液晶电子时钟

根据qt的<QLDNumber>做了一个qt液晶电子时钟. 结果 实时显示当前时间,左键可以拖动时钟在屏幕的位置,右键点击关闭显示. 实现过程 新建一个class文件,让这个文件的父类是QLCDNumber 相关功能变量定义和函数实现 .c文件代码 这里需要注意的一点是event->button是获取的…

langchain学习笔记(七)

RunnablePassthrough: Passing data through | &#x1f99c;️&#x1f517; Langchain 1、RunnablePassthrough可以在不改变或添加额外键的情况下传递输入。通常和RunnableParallel结合使用去分配数值给到字典的新键 两种方式调用RunnablePassthrough &#xff08;1&#…

【three.js】手把手带你理解制作一个3D场景 超级详细

我们主要目的是制作这样一个三维模型: 我们直接上代码,从代码中一点点解释模型是如何一步一步制作的。 // 引入three.js import * as THREE from three; /*** 创建3D场景对象Scene*/ const scene = new THREE.Scene();/*** 创建网格模型*/ //创建一个长方体几何对象Geometry…

安卓使用ExoPlayer出现膨胀类异常

1.导包 implementation com.google.android.exoplayer:exoplayer-core:2.15.1implementation com.google.android.exoplayer:exoplayer-ui:2.15.1 2.在Androidifest.xml加入权限&#xff0c;我这里加了忘了与读写权限 <uses-permission android:name"android.permissio…

ESG工具变量:最早一期、同城ESG(2009-2022年)

参照《管理评论》中席龙胜&#xff08;2022&#xff09;、《证券市场导报》中王琳璘&#xff08;2022&#xff09;的做法&#xff0c;选择企业同城市其他上市企业ESG的平均表现、企业最早一期ESG表现作为企业ESG表现的工具变量 一、数据介绍 数据名称&#xff1a;ESG工具变量—…

yolov9从头开始训练

yolov9从头开始训练 一、准备数据集 数据集相关文件存放布局如下 yolov9-datasets ├── train │ ├── images │ │ ├── image.jpg │ │ ├── │ └── labels │ ├── image.txt │ ├── ├── valid │ ├── images │ │ ├── image.jpg │ │ ├─…

项目运维方案

1. 文档介绍 2. 人员与责任 3. 运维过程内容 4. 运维资源 5. 运维服务规划保障 6. 事件处置 7. 质量改进 8. 运维边界及内容 软件开发全套资料获取&#xff1a;软件开发全套资料_数字中台建设指南-CSDN博客

CSP-201803-2-碰撞的小球

CSP-201803-2-碰撞的小球 解题思路 解题思路是通过模拟小球在数轴上的移动来计算t秒后各个小球的位置。 初始化阶段&#xff1a;首先&#xff0c;读入小球的数量 n、线段长度 L 和时间 t。然后&#xff0c;对于每个小球&#xff0c;程序读入它们的初始位置&#xff0c;并创建一…

【学习笔记】数据结构与算法05:树、层序遍历、深度优先搜索、二叉搜索树

知识出处&#xff1a;Hello算法&#xff1a;https://www.hello-algo.com/ 文章目录 2.4 树2.4.1 「二叉树 binary tree」2.4.1.1 二叉树基本操作2.4.1.2 二叉树的常见类型「完美二叉树 perfect binary tree」「完全二叉树 complete binary tree」「完满二叉树 full binary tre…

【每日刷题】数组-LC56、LC238、随想录1

1. LC56 合并区间 题目链接 Arrays.sort先让intervals里的子数组按照子数组的第一个数字值从小到大排列。开一个新数组&#xff0c;newInterval&#xff0c;存放合并好的子数组让intervals的当前子数组i的第一个数字与newInterval的当前子数组index的最后一个数字比较大小&am…

JAVA对象内存模型

Java对象内存模型 > 一个Java对象在内存中包括3个部分&#xff1a;对象头、实例数据和对齐填充 > > 数据 内存 – CPU 寄存器 -127 补码 10000001 - 11111111 32位的处理器 一次能够去处理32个二进制位 4字节的数据 64位操作系统 8字节 2的64次方的寻址空间 指针压…

【C++】核心编程--内存分区、引用

文章目录 1.内存分区模型1.1 程序运行前1.1.1 代码区1.1.2 全局区 1.2 程序运行后1.2.1 栈区1.2.2 堆区 1.3 new操作符 2. 引用2.1 给变量起别名2.2 引用做函数参数2.3 引用做函数返回值2.4 引用的本质2.25 常量引用 1.内存分区模型 C程序在执行时&#xff0c;将内存大方向划分…

第七十一天 漏洞发现-Web框架中间件联动GobyAfrogXrayAwvsVulmap

第71天 漏洞发现-Web框架中间件&联动&Goby&Afrog&Xray&Awvs&Vulmap 知识点&#xff1a; 1、Bup简单介绍&使用说明 2、Xray简单介绍&使用说明 3、AWWS简单介绍&使用说明 4、Goby简单介绍&使用说明 5、Afrog简单介绍&使用说明 6、…