算法题汇总

2023-11-14

NO1 打靶问题,打十次打靶,总分数为90分的情况有哪些?
NO2 阶乘末尾0的个数?

 

NO1 打靶问题,打十次打靶,总分数为90分的情况有哪些?

个人感觉比较像一类排列组合递归回溯的解法。

package com.lzg.flume.intercepter.suanfati;

public class DaBa {
    public static int count = 0;

    public static void printHis(int[] his) {
        for (int i = 0; i < his.length; i++) {
            System.out.print(his[i] + " ");
        }
        System.out.println();
    }

    public static void caculate(int times, int remainScore, int[] scoreHistory) {
        if (remainScore < 0 || remainScore > times * 10) //程序递归退出的标志
            return;
        if (1 == times) {
            if (remainScore >= 0 && remainScore <= 10) {
                //代表最后一次打靶,如果剩余分数在0-10之间,就代表这次排列组合是成功的
                scoreHistory[times - 1] = remainScore;
                printHis(scoreHistory);//输出每一种排列组合情况
                count++;
            }
        } else {
            for (int i = 0; i <= 10; i++) {
                //这次times打靶有11种分数可能性
                scoreHistory[times - 1] = i;
                caculate(times - 1, remainScore - i, scoreHistory);
            }
        }
    }

    public static void main(String[] args) {
        int[] scoreHistory = new int[10];
        //打10次打靶,总分数是90分的排列组合情况
        caculate(10, 90, scoreHistory);
        System.out.println("总共排列组合数量: " + count);

    }
}

NO2 阶乘末尾0的个数?

其实乘法里面,末尾有0意味着因子中肯定有10,而10的质因子,就是5 和 2,所以,我们要看末尾有没有5,为啥直接看阶乘中的数字的包含的5的质因子的总数就可以了?不用看2的么?主要是5比2大,如果有5的质因数,那么肯定比如包含2,比如5!:,仔细观察,5的阶乘中5的总数只有1个,但是2的总数有3个。所以我们直接看5的数量就可以了。

那么这里你肯定发现了一个问题,就是为啥在25的时候一次洗由4加到了6?其实究其原因就是,我们之前一直在找的数量,但是 也可做到后面有0。所以这里就多出了一个5的质因子的总数,因为25也是要分解成
我们来看看代码:

class Solution {
    public int trailingZeroes(int n) {
        int count = 0;
        while(n >= 5) {
            count += n / 5;
            n /= 5;
        }
        return count;
    }
}


 

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

算法题汇总 的相关文章

  • 数据结构---树和二叉树

    树和二叉树 定义 二叉树 二叉树的物理结构 链式存储 数组 二叉树应用 查找 维持相对顺序 二叉树的遍历 深度优先遍历 前序遍历 中序遍历 后序遍历 二叉树广度优先遍历 层序遍历 定义 有且仅有一个特定的称为根的节点 当n gt 1时 其余
  • 给定一个二叉树, 找到该树中两个指定节点p和q(数值唯一)的最近公共祖先

    递归思想 判断p和q是否分别根结点的左右两侧 如果在左右两侧那么直接返回根结点即可 不失一般性 假设p和q分别均在根结点的左侧 那么按照分治的思想 此时继续往左子树找即可 问题规模已经缩小 那么依旧还是上面的操作划分 故可以采用递归的思想
  • 算法-经典趣题-马踏棋盘(又称骑士周游)

    本文为joshua317原创文章 转载请注明 转载自joshua317博客 算法 经典趣题 马踏棋盘 又称骑士周游 joshua317的博客 一 问题 马踏棋盘问题 又称骑士漫步 它是一个非常有趣的智力问题 马踏棋盘问题的大意如下 国际象棋
  • 《算法》第二章——快排非递归实现

    思路 其实就是用栈保存每一个待排序子串的首尾元素下标 下一次while循环时取出这个范围 对这段子序列进行partition操作 代码 include
  • java希尔排序

    public class ShellSort public static void main String args int a 9 8 7 0 1 3 2 10 5 12 7 0 15 int n a length for int add
  • 基于C++的栈的两种实现(数组和链表)

    栈 概述 基本操作 用数组实现栈 用链表实现栈 测试 概述 栈是一种只能在表的顶端进行插入和删除运算的线性表 其主要特点是后进先出 LIFO 或先进后出 FILO 该数据结构的示意图如下 基本操作 函数名 用途 bool empty 判断栈
  • 二叉树:链式存储结构基础操作(C语言)

    操作包含 1 二叉树的构造 先序序列和中序序列 中序序列和后序序列 2 利用三种遍历方式输出 先序遍历 中序遍历 后序遍历 层次遍历 每种遍历包含递归和非递归两种算法 3 栈和队列的构造 C 模板 均为顺序存储结构 main cpp 1 构
  • 2-蛇形矩阵

    蛇形矩阵 首先我们来看问题 上面这个矩阵我们要怎么将它输出呢 我们仔细观察这个矩阵 不难发现它是有一定规律的 它的数字沿着一条蛇一样弯曲排布 那么问题来了 我们在电脑中输出都是以一行一行这样来输出的 这个矩阵的顺序明显不符合以行为参考时的输
  • 程序员常用九大算法(二分查找(非递归)、分治、动态规划、KMP、贪心、普里姆、克鲁斯卡尔、迪杰斯特拉、弗洛伊德算法)

    程序员常用九大算法 1 二分查找 非递归 2 分治算法 3 动态规划算法 4 KMP算法 5 贪心算法 6 普里姆算法 7 克鲁斯卡尔算法 8 迪杰斯特拉算法 9 弗洛伊德算法 1 二分查找 非递归 就是不使用递归的二分查找 这里不做介绍
  • 数组中子数组和为固定值的题目汇总

    开头附件一部分数组去重的知识 C 中数组 Vector中去除重复元素 unique函数是一个去重函数 去除相邻中的重复元素 只留一个 其中 最关键的是 并不是删除并不是把重复的元素删除 而是全部放倒数组的后面 因为 unique只是去除 相
  • 8-高精度计算(加法)

    我们知道 在C语言和C 中对于所能存储的数值的最大值是有明确的上限的 但是我们有时候会需要去计算一些数值比较大的数字 例如位数为1000 10000的数字的加减运算 这时候我们就需要使用新的运算方法了 这里引入高精度的大数据计算 它可以用计
  • 【GUI】LVGL8内存泄漏分析

    LVGL版本 V8 0 2 平台 ESP32S3 在调试过程中 发现有两个界面 在重复退出再进入时内存会不断增加的吃内存现象 然后做了分析和研究 1 样式style吃内存 在主页面 进入simple页面 再退出到主页面 再次进入simple
  • Queue(单项队列)和Deque(双端队列)的知识点整理

    1 Queue 单向队列 1 1 定义 常见队列就是FIFO 先进先出 队列 可以实现前端删除 peek pop from front 后端添加 push to back 的功能 1 2 实现 既可以用数组 顺序队列 也可以用链表 链式队列
  • 单调栈理解

    文章目录 单调栈 什么是单调栈 模拟实现一个单调栈 一些例题 视野总和 下一个最大元素 单调栈 什么是单调栈 从名字上就听的出来 单调栈中存放的数据应该是有序的 所以单调栈也分为单调递增栈和单调递减栈 单调递增栈 单调递增栈就是从栈底到栈顶
  • 均方误差(MSE)

    均方误差 Mean Squared Error MSE 在相同测量条件下进行的测量称为 等精度测量 例如在同样的条件下 用同一个游标卡尺测量铜棒的直径若干次 这就是等精度测量 对于 等精度测量来说 还有一种更好的表示误差的方法 就是 标准误
  • 13-并查集

    数据结构并查集常用于将两个集合并起来以及查询两个元素是否隶属于同一个集合 相对于传统我们的求法 并查集算法极大减少了查询的工作量 提高了效率 合并集合 假设我们有两个集合 常规情况下合并两个集合就是将它们混合起来 但是在计算机中 如果我们想
  • 剑指Offer07:重建二叉树(Java)

    题目描述 解法思路 一开始想了半个小时都没想出来 幸好得到大佬的帮助 终于做出来 嘻嘻 采用递归的思想 不断拆分左右子树即可 首先我们通过前序遍历可以看到这个树的根节点是3 然后通过中序遍历 我们可以知道9是左子树 15 20 7是右子树
  • 数据结构和算法(4):栈与队列

    栈 ADT 及实现 栈 stack 是存放数据对象的一种特殊容器 其中的数据元素按线性的逻辑次序排列 故也可定义首 末元素 尽管栈结构也支持对象的插入和删除操作 但其操作的范围仅限于栈的某一特定端 也就是说 若约定新的元素只能从某一端插入其
  • 基于C++的带权无向图的实现 (五)- 连通图和连通分量

    该系列文章是本人整理的有关带权无向图的数据结构和算法的分析与实现 若要查看源码可以访问我的github仓库 如有问题或者建议欢迎各位指出 目录 基于C 的带权无向图的实现 一 数据结构 基于C 的带权无向图的实现 二 遍历算法 基于C 的带
  • 深入理解左倾红黑树 | 京东物流技术团队

    平衡二叉搜索树 平衡二叉搜索树 Balanced Binary Search Tree 的每个节点的左右子树高度差不超过 1 它可以在 O logn 时间复杂度内完成插入 查找和删除操作 最早被提出的自平衡二叉搜索树是 AVL 树 AVL

随机推荐

  • QT 程序架构 及 Ui 来龙去脉

    ifndef MAINWINDOW H define MAINWINDOW H include
  • 好用的IDEA插件之Alibaba Java Coding Guidelines

    一 简介 Alibaba Java Coding Guidelines是一款基于阿里巴巴Java开发手册的IDEA插件 它提供了一系列的代码检查和自动修复功能 帮助开发者遵循阿里巴巴的Java编码规范 该插件支持的检查类型包括命名规范 代码
  • 使用Sentencepiece +CNN进行文本分类

    Sentencepiece是google开源的文本Tokenzier工具 其主要原理是利用统计算法 在语料库中生成一个类似分词器的工具 外加可以将词token化的功能 对比开源的分词器 它会将频繁出现的字符串作为词 然后形成词库进行切分 所
  • 清明上河图30亿像素_清明上河图高清下载

    清摹本清明上河图高清全图 一亿像素 是为了方便众多学者们研究品评清明上河图的资源 小编这里给大家带来的是过亿像素的清摹本清明上河图高清全图 画质好到想假的一样 第一眼看到小编觉得以前看的清明上河图都是假的 如果你有需要的话 那就快来IT猫扑
  • 图片素材网站

    七大壁纸网站满足所有分辨率需求 如今手机电脑都是1080p起步 偏高端的2k 高端的4k都逐渐进入普通大众的接受范围 而电视机近两年不是4k都不好意思拿出手 虽然电视4k在今年这个时候对普通人来说也并不实用 我经常就为了找一些分辨率高的壁纸
  • 排序算法-【Java实现】-【桶排序、冒泡排序、快速排序、插入排序】

    排序算法 Java实现 桶 冒泡 快速 归并 插入排序 排序算法演示地址 https www cs usfca edu galles visualization ComparisonSort html 桶排序 顾名思义 将数组分到有限数量的
  • 有序链表转换二叉搜索树

    力扣入口 109 有序链表转化二叉搜索树 给定一个单链表 其中的元素按升序排序 将其转换为高度平衡的二叉搜索树 本题中 一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 思路加图解 思路1 class So
  • 【Python】dlib 无需编译安装 dlib-19.23.0-cp39-cp39-win_amd64.whl

    Dlib介绍 Dlib is a modern C toolkit containing machine learning algorithms and tools for creating complex software in C to
  • HTML5录音并调用百度语音识别

    HTML5录音借鉴的网上的代码 但是下载下来却无法用 查阅了好多资料 终于在国外某网站上找到原因 原来是js函数废弃了 替换为新的js函数名即可 HTML5录音的代码 http www it165 net design html 20140
  • opencv学习笔记十:使用cv2.morphologyEx()实现开运算,闭运算,礼帽与黑帽操作以及梯度运算

    openvc中morphologyEx 函数是一种形态学变化函数 数学形态学可以理解为一种滤波行为 因此也称为形态学滤波 滤波中用到的滤波器 kernal 在形态学中称为结构元素 结构元素往往是由一个特殊的形状构成 如线条 矩形 圆等 基本
  • Tomcat解决跨域问题

    Tomcat解决跨域问题 把下面的代码粘贴到web xml的552行下即可
  • 在 Dev-C++ 或 Code::Blocks 下面配置 EasyX

    前言 EasyX 虽然挺好用 但是目前官方只发布了针对 VC 的使用方法 本文介绍如何将 EasyX 配置到 DevCpp 或 CodeBlocks 里面 并提供相关的库 平时我工作忙 有问题直接在后面留言 我会尽力修改 注 版本太老的 m
  • java域名解析

    import java net InetAddress import java net UnknownHostException public class GetIp static public void main String args
  • Redis实现简单投票系统(微服务系列)

    package com jt redis import redis clients jedis Jedis import java lang reflect Member import java util Set public class
  • .NET网络编程——TCP通信

    一 网络编程的基本概念 1 网络 就是将不同区域的电脑连接到一起 组成局域网 城域网或广域网 把分部在不同地理区域的计算机于专门的外部设备用通信线路 互联成一个规模大 功能强的网络系统 从而使众多的计算机可以方便地互相传递信息 共享硬件 软
  • webrtc-stun/turn 服务器安装

    项目中用到了webrtc 他的p2p通过ICE实现 其中需要stun turn服务器接入 我用的google开源的 很好用 原来叫做turnserver 后来改名为corturn git有下载连接 其实安装 部署配置都很简单 有很多分享 重
  • Docker进阶学习:swarm集群搭建

    我们可以看一下官方文档关于工作机制的地方 How nodes work 可以从官方截图上看 manager顾名思义是管理器 但是管理器要做好分配 官方一句话 An N manager cluster tolerates the loss o
  • Java ArrayList 类

    ArrayList 类继承了 AbstractList 并实现了 List 接口 ArrayList 支持可以根据需要增长的动态数组 标准 Java 数组是固定长度的 数组创建后不能增长或缩小 这意味着我们必须提前知道一个数组将包含多少个元
  • 5年测试开发,跳槽薪资25k变成30k,总结的这些面试题,你会哪些?

    每年的金三银四都是各大公司招聘程序员的最佳时期 在这段时间内有好多程序员会为了面试而发愁 不知道如何才能收到好的offer 拿到理想的薪资 实现自我的人生价值 我想告诉大家的是 其实都不用愁的 好好准备一下就可以了 每个人都想找一份大厂的
  • 算法题汇总

    NO1 打靶问题 打十次打靶 总分数为90分的情况有哪些 NO2 阶乘末尾0的个数 NO1 打靶问题 打十次打靶 总分数为90分的情况有哪些 个人感觉比较像一类排列组合递归回溯的解法 package com lzg flume interc