程序员面试金典——17.3阶乘尾零

GD32VF103开发板吃灰了?试试这个官方LED例程的保姆级导入与编译指南 本文提供了GD32VF103开发板的详细开发环境搭建指南,重点介绍了如何使用Nuclei Studio IDE导入和编译官方LED例程。从软件准备、工程配置到常见问题解决,一步步帮助开发者快速上手RISC-V架构开发,让闲置的开发板重新发挥作用。 阅读详情

程序员面试金典——17.3阶乘尾零

Solution1:我的答案。没有更笨的方法了。。。

class Factor {
public:
    int getFactorSuffixZero(int n) {
        // write code here
        int nums_2 = 0, nums_5 = 0;
        for(int i = 1; i <= n; i++) {
            nums_2 += nums_of_2(i);
            nums_5 += nums_of_5(i);
        }
        return min(nums_2, nums_5);
    }

    int nums_of_2(int n) {
        int res = 0;
        while(n%2 == 0) {
            res++;
            n /= 2;
        }
        return res;
    }

    int nums_of_5(int n) {
        int res = 0;
        while(n%5 == 0) {
            res++;
            n /= 5;
        }
        return res;
    }
};

Solution2:
参考网址:https://www.nowcoder.com/profile/9993586/codeBookDetail?submissionId=14652823
考虑进了概率的因素,大大降低了复杂度,好啊~~~

/*
 * 思路:刚开始做这道题的时候,我是先求出n!再计算有多少个0
 * 这样的复杂度很大,编译不通过,后来在编程之美中看到了思路,思路如下
 *   n!可以质因数分解,由于2*5=10,所以尾零的个数只与2和5有关
 *   但是能被2整除的频率比被5整除的数高的多,所以尾零的个数其实只和5相关,
 *   n!能被多少个5解,就有多少个0,
 *   这事,通过遍历(1到n)只要将能被5整除,就统计+1,最后统计的数,就是尾零的个数
 *
 */
public class Factor {
      public int getFactorSuffixZero(int n) {
          int count=0;
          for (int i = 1; i <=n; i++) {
              int j = i;
            while(j%5==0){
                count++;
                j/=5;
            }
        }
          return count;
      }
}
Oracle数据库多语言文字存储解决方案(四) 以前面mer_categ为例,修改表结构如下: 字段数据类型长度说明S_merc_idVarchar220分类编号S_merc_nameNVarchar250分类名称  环境参数:数据库字符集:ZHS16GBK数据库国家字符集:AL16UTF16NLS 阅读详情

相关推荐

Oracle数据库多语言文字存储解决方案(一)

Oracle数据库多语言文字存储解决方案(一)  -  [ oracle ]一、关于字符集 字符集(也称字元集,Character Set)就是字符编码表(codepage),一个字符不论英文、中文、韩文等在计算机系统内存或硬盘中通过二进制的字节(Byte)保存,这个二进制的编码就是字符编码(也称内码),字符集就是字符与内码的对应(映射)表。    因为多国语言的原因,就出现了根据

蓝夜 988

【0002】阶乘尾0问题

问题描述: 计算任意一个数字的阶乘(如32!)值,并获取其尾部数字0的数量。 重点: 阶乘公式的应用 主要考点: 阶乘结果其尾部0的产生原因 算法公式: 基本阶乘公式:N! = (N-1)! × N 示例推导: 4! = 4 × 3 × 2 × 1 = 24 5! = 5 × 4 × 3 × 2 × 1 = 120 10! = 10 × 9 × 8 × 7 × 6 × 5 × 4 × 3 × 2 ...

Machen. 734

从Oracle到国产数据库:GaussDB/GBASE/vastbase核心对象创建与权限管理实战

本文详细介绍了从Oracle迁移到国产数据库GaussDB、GBASE和vastbase的实战经验,重点解析了核心对象创建与权限管理的关键步骤。通过真实案例演示Schema设计、序列使用和权限分配的最佳实践,帮助开发团队规避常见迁移陷阱,提升数据库迁移效率与稳定性。

weixin_42567752的博客 154

阶乘表 1~100阶乘

​ 阶乘的定义: 一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积, 并且0的阶乘为1,自然数n的阶乘写作n! 亦即n!=1×2×3×...×(n-1)×n。阶乘亦可以递归方式定义:0!=1,n!=(n-1)!×n。 ​

xzh_csdn_123456的博客 1万+

STM32搭配MRAM:工业级数据可靠存储方案与MR25H40CDF实战

在嵌入式系统中,数据存储的可靠性往往比计算能力更关键,尤其在频繁掉电、温度剧烈变化且需反复改写的工业场景中,传统EEPROM和NOR Flash存在寿命短、需先擦后写等短板。磁性随机存取存储器MRAM利用磁隧道结的磁阻效应存储数据,具备无需擦除、近乎无限的写入寿命和掉电非易失特性,从根本上规避了擦写磨损与掉电丢数风险。本文从存储技术原理出发,对比三类主流非易失存储器,解析Everspin MR25H40CDF与STM32F071VB的硬件接口设计、SPI驱动实现及三层数据保护策略,并分享环形日志、掉电保存等

weixin_34293246的博客 335

新版RVC模型部署与实战:从AI翻唱到实时变声的完整指南

语音合成与音色转换是人工智能在音频处理领域的重要应用,其核心目标是通过算法将源语音的内容与目标音色分离并重组。基于检索的语音转换(Retrieval-based Voice Conversion)技术,通过构建特征库、匹配与重建的机制,在保证高保真度的同时,显著降低了对训练数据量的需求,提升了音色克隆的效率和自然度。这项技术的工程价值在于,它使得个性化语音生成、内容创作和实时交互应用成为可能,广泛应用于虚拟偶像、有声内容制作、游戏娱乐及辅助通信等场景。本次更新重点降低了硬件门槛,使得在8GB显存的消费级显卡

weixin_33850015的博客 600

练习三 阶乘

package Text; public class Text { public static void main(String args[]){ int i; double s=1,sum=0; for(i=1;i<21;i++) { s=s*i; sum+=s; } System.out.printl

实验狗 886

BarTender标签设计与打印实战指南:从零入门到数据驱动批量打印

在工业自动化和信息化管理中,数据驱动打印是实现物料、产品标识自动化的核心技术。其原理是通过软件将数据库中的变量数据动态填充到预设模板,实现批量、精准的标签输出。这项技术对于提升仓储物流、生产追溯等场景的效率和准确性具有重要价值。BarTender作为业界领先的专业软件,以其便捷易用的图形化界面和强大的数据源管理能力,成为实现这一流程的优选工具。本文将以BarTender为例,手把手演示如何连接数据库、设计模板并完成打印,帮助用户快速掌握标签制作全流程,规避常见的配置与打印难题。

benben 377

Rider 2025 深度解析:.NET 多语言开发的语义级 IDE 转型

IDE 不再是代码编辑器,而是嵌入开发流的实时决策系统。从 .NET 生态底层原理出发,Rider 2025 通过 Roslyn 与 ReSharper 融合的语义分析引擎,实现 C#、F#、VB.NET 等语言的上下文感知式诊断与智能补全;其内置 .NET Runtime 层打破传统进程隔离模式,支持跨语言、跨 SDK 的增量分析与调试协同。这种架构升级带来显著技术价值:诊断速度提升3倍、大型解决方案加载延迟降低84%、混合项目类型(如 MAUI+Vue+VB.NET)工程一致性增强。典型应用场景涵盖企业

weixin_33984032的博客 457

DeepSeek-V4-Pro与GLM-5.1实战指南:三模共存开发环境搭建

大模型API接入本质是工程化问题,而非单纯选型比拼。理解模型即服务(MaaS)的供电逻辑,需从API兼容性、中文语义解析精度、本地推理部署稳定性三大基础维度切入。DeepSeek-V4-Pro以OpenAI Schema兼容性与确定性低延迟见长,适合生产级代码生成;智谱GLM-5.1针对中文技术术语(如‘宽字节注入’‘长整型’)具备毫米级歧义消解能力,显著提升SQL审计与VB.NET迁移等垂直场景准确率。二者协同Trea协议转换层,可构建稳定、低成本、免运维的本地化AI开发流。本文聚焦真实终端操作链路——从

451

GLM-4.7国产编码大模型:中文语义压缩与多编码鲁棒性突破

AI编程助手正从通用代码生成迈向垂直工程落地,其核心在于对中文技术语境的理解能力与生产环境兼容性。传统大模型在Java/Python等语言中常因分词失准、大小写敏感缺失、泛型擦除等问题导致编译失败;更关键的是,在国产信创环境中,GBK/UTF-8混合编码、ARM架构适配、国产数据库方言支持等现实约束长期制约AI编码工具的可用性。GLM-4.7通过中文代码语义压缩算法与动态编码感知模块(DEAM),显著提升中文工程术语建模精度和多编码鲁棒性,实现在统信UOS、飞腾服务器及Oracle/MySQL混合数据库场景

weixin_30387423的博客 450

程序员核心竞争力:数据与逻辑解耦的工程直觉

在现代分布式系统中,'数据库+编程语言'的单一技术栈已难以应对实时风控、高并发秒杀、跨源数据分析等复杂场景。理解数据生命周期(产生→传输→存储→计算→消费)和计算范式本质(命令式/函数式/响应式),是构建可扩展架构的基础。掌握ClickHouse列存聚合、Redis内存索引、Flink流处理等引擎的适用边界,结合Rust所有权、Go Goroutine调度、SQL与NoSQL语义差异等底层原理,才能实现从‘建表思维’到‘数据契约思维’、从‘语法熟练’到‘范式驾驭’的跃迁。本文聚焦真实项目中的技术选型逻辑与认

diedangxiang4092的博客 545

Power BI Report Builder实战指南:分页报表从入门到企业级交付

分页报表(Paginated Reports)是面向企业正式交付场景的专业报表形态,其核心基于RDL报表定义语言,继承自SSRS技术栈,强调格式锁定、精确分页与批量导出能力。相比Power BI Desktop的交互式可视化,它更侧重PDF/Excel/Word等可归档、可嵌入、可审计的静态文档输出,在财务月报、合规底稿、合同单据等刚性格式需求中不可替代。技术价值体现在服务端数据聚合、参数化批量生成、像素级布局控制及SSRS兼容的嵌入能力。典型应用场景包括固定版式导出、百万级数据分户报表、ERP/SAP系统

weixin_30522183的博客 551

SQL注入攻防实战:绕过技巧与参数化查询防御原理

SQL注入是一种利用应用程序输入验证缺陷,通过插入恶意SQL代码来操纵数据库执行的攻击技术。其核心原理在于应用程序未对用户输入进行充分过滤或编码,导致用户输入被误解析为SQL指令的一部分。从技术价值看,理解SQL注入的绕过手法(如编码混淆、等价函数替换、参数污染等)不仅有助于渗透测试和漏洞评估,更是构建纵深防御体系的基础。在实际应用场景中,开发人员常面临WAF规则绕过、ORM框架误用、盲注效率低下等挑战。本文聚焦于SQL注入的实战绕过技巧与防御策略,重点探讨参数化查询(预编译语句)的实现机制,以及如何结合输

weixin_33971977的博客 389

C#性能真相:语言、平台与工程权衡的技术思辨

C#作为一门现代高级编程语言,其运行效率常被误读为‘天生缓慢’,实则需区分语言规范、.NET运行时平台与具体代码实现三个技术层级。元数据(Metadata)支撑类型安全、反射与跨语言互操作,虽带来少量反射开销,却是托管环境生产力与安全性的核心代价;而LINQ、async/await等特性本质是编译器驱动的语法糖,性能取决于使用方式而非语法本身。在云原生与快速迭代背景下,开发效率提升带来的商业价值(如缩短上市时间、降低维护成本)往往远超微秒级运行时损耗。本文基于真实生产案例与科学基准测试方法,揭示C#性能优化

xiang_fu的博客 456

Android APK逆向工程实战:从工具链到Smali修改与Frida动态调试

逆向工程是软件安全与开发领域的一项核心技术,它通过分析程序的最终产物来理解其内部逻辑与实现原理。在Android生态中,APK逆向工程尤为关键,其核心目标在于分析应用逻辑、定位关键功能点并进行安全审计。实现这一目标依赖于一套成熟的工具链,例如Apktool用于解码资源与反编译dex文件,Jadx则能将字节码高效还原为可读的Java代码,二者构成了静态分析的基石。这项技术的价值在于,它不仅能帮助开发者学习优秀实现、排查自身应用的安全风险,也是安全研究人员进行漏洞挖掘和恶意软件分析的重要手段。在应用场景上,无论

weixin_30751947的博客 357

我最喜欢的编程语言是C++

记得程序员大本营的一张盘说: 真正的程序员使用C++, 聪明的程序员使用delphi. 1990年,我刚开始学习编程时,觉得计算机的世界真奇妙, 我竟然用BASIC能输出神气的文字, “HELLO! xuyan”,我的名字在上面了!当我用BASIC按照书上的例子写了一个飞机与宇宙飞船的游戏代码时,我期待的是象街机上的雷龙一样的精彩界面, 可失望的是他不但没出来,连声音都没有!后来我请教老师, 他说

riding的专栏 2018

ADS版图优化中的参数化设计技巧

本文详细介绍了在ADS中进行射频电路版图参数化设计的核心技巧。通过将版图关键尺寸定义为变量,并与电磁仿真及优化器联动,实现从手动修改到自动迭代的转变,极大提升了PA、LNA等电路的设计与优化效率。文章以阶梯阻抗变换器为例,阐述了变量创建、绑定及协同仿真的完整流程,并提供了避免网格冲突、变量混乱等常见问题的实用指南。

weixin_29296241的博客 405
上一篇: 程序员面试金典——17.5珠玑妙算
下一篇: 程序员面试金典——17.6最小调整有序
Allenlzcoder
博客等级 码龄10年 925粉丝 512原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值