【编程之美】读书笔记:给定一个整数N,求N!末尾有多少个0

C++模板元编程实战:从编译期计算到现代C++演进 模板元编程(Template Metaprogramming, TMP)是C++中一种在编译期执行计算的编程范式,其核心原理是将计算从运行时转移到编译时,通过模板特化和递归实例化实现。这种技术价值在于实现零开销抽象,将运行时成本转化为编译期开销,从而在性能敏感场景如游戏引擎和高频交易系统中获得极致性能。应用场景广泛,包括泛型库开发、性能关键代码优化、接口静态安全检查等。本文结合《C++模板元编程实战》的阅读心得,深入解析类型萃取、SFINAE、变参模板等核心工具,并通过编译期字符串哈希器等实战案例,展示如何 阅读详情

         问题:给定一个整数N,求N!末尾有多少个0

         这个题目不能直接求出N!的值,这样可能会溢出。首先考虑N!=K*10^M,并且K不能被10整除,那么N!末尾有M个0。再考虑对N!进行质因数分解,N!=(2^X)*(3^Y)*(5^Z)...,由于10=2*5,所以M只和X和Z有关,每一对2和5相乘都可以得到一个10,于是M=min(X,Z);不能看出X>=Z.所以把公式简化为M=Z,只要计算出Z的值,就可以得到N!末尾0的个数。

 解法一:计算1,2,...,N的因式分解中5的指数,然后求和。
   

 ret=0;
for(i=1;i<=N;i++)
{
j=i;
while(j%5==0)
  {
ret++;
j/=5;
}
}


解法二:公式Z=[N/5]+[N/5^2]+[N/5^3]+...其中[N/5]表示不大于N的数中5的倍数贡献一个5,[N/5^2]表示不大于N的数中5^2的倍

数再贡献一个5. [N/k]表示1,2,3,...,N中能被k整除的数的个数。
代码如下:
 

ret=0;
 while(N)
{
 ret+=N/5;
N/=5;
}


 

求无向图中所有的环 C++ python 求无向图中所有的环 阅读详情

相关推荐

Seedance2.5本地部署:从环境配置到批量生图的工程实践指南

最近在几个技术社群里,看到不少人在讨论 AI 生图和视频工具。有人抱怨在线服务要么贵、要么慢、要么生成内容受限;也有人尝试了各种“免费”方案,结果不是功能残缺就是暗藏收费陷阱。就在大家觉得“又好又免费”的本地部署方案门槛太高时,Seedance2.5 突然冒了出来,而且口号相当直接:本地部署、完全免费、不联网、功能对标甚至超越一些付费产品。 但这类宣传我们见多了,真正的问题是:它到底能不能在普通开发者的机器上跑起来?生成质量是否真的可用?长期使用会不会遇到模型崩溃、依赖冲突或者资源爆炸?更重要的是,对于一个

weixin_27419879的博客 1127

输入有一个正整数n,求n!末尾有多少个0?

题目描述 输入有一个正整数n,求n!末尾有多少个0?比如:n=10;n!=3628800,所以答案为2 思路:末尾0的个数实际上就是2*5的个数,2肯定比5多,所以现在就统计5的个数 代码实现 public static void main(String[] args) { System.out.print("->"); Scanner sc = new Scanner(System.in); int n = sc.nextInt();

qq_45852612的博客 1645

手把手教你用S7-PLCSIM Advanced V3.0搭建PLC仿真测试环境(含WinPcap避坑指南)

本文详细介绍了如何使用西门子S7-PLCSIM Advanced V3.0搭建PLC仿真测试环境,包括WinPcap 4.1.3驱动的安装避坑指南。从环境准备、软件安装到配置调试,提供了一套完整的解决方案,帮助工程师和教学人员快速构建可靠的PLC仿真环境,解决常见的报错问题。

weixin_30879169的博客 641

求N!末尾0的个数

题目:给定一个整数N,那么N的阶乘N!末尾有多少个0呢?例如:N=10,N!=3 628 800,N!的末尾有两个0。 方法一: 最容易想到的方法,先把N的阶乘求出来,再用一个函数计算末尾0的个数,但是这个方法有两个问题:当数字很大时,效率很差、用内置类型(int、long等)会溢出。要解决这两个问题,只能优化算法。 首先要知道N的阶乘一定可以用K×10M来表示,那我们的问题就变成了

element137的博客 2105

Keil MDK 5.37及之后版本 安装AC5(ARMCC)编译器详细步骤

由于Keil 5.37及之后版本不再默认安装AC5(ARMCC)编译器,这就会导致由AC5编译的工程无法正常编译,往往输出窗口会提示以下信息:*** Target ‘STM32xxxx‘ uses ARM-Compiler ‘Default Compiler Version 5‘ which is not available.

s_Modesto的博客 1万+

[终于解决]Ubuntu14.04 32位安装移动网卡(0bda:b711)驱动8188gu tplink-WN726n

大致梳理一下问题解决的流程 首先,在台式机做了双系统,台式机只有一个网线接口,由于项目要求,需要占用网口传输数据,所以用之前买的tplink-WN726n免驱版2.0的移动网卡 【note】免驱版只能在Windows下安装使用,在Ubuntu系统中无法使用,所以,需要另辟蹊径。 找了很多资料,尝试很多方法,有的复杂有的简单,终于解决。 【思路】首先在Ubuntu系统中输入lsusb,查看是否检测到USB网卡设备。然后从Github中复制代码,构建,安装,然后modprobe一下,到前面那步还不行,就再来一步

瑞o 1万+

输入一个正整数n,求n!(即阶乘)末尾有多少个0?

输入一个正整数n,求n!(即阶乘)末尾有多少个0? 比如: n = 10; n! = 3628800,所以答案为2 题目链接 分析: 计算n的阶乘,n的阶乘:n!=1×2×3×…×n那么我们在计算n的阶乘时,实际上就是把所有小于等于n的正整数分解成质因数,然后再将其乘到一起,那么末尾0的个数实际上就是2 * 5的个数,而2的个数明显是很多很多的,所以问题就转化成了5的个数。 而只有5的倍数才有5这个因数,所以,问题就进一步简化为小于等于n的数中有多少个数是5的倍数,当然25的倍数,125的倍数,625还要单

weixin_45755718的博客 3028

暗黑地牢modfiles.txt文件生成工具

暗黑地牢modfiles.txt文件生成工具引言方法工具源码基本步骤 引言 玩过暗黑地牢mod,并手动修改了mod中文件的话,如果不同步修改modfiles.txt文件,就会引起各种问题,典型的比如马车刷不出mod英雄,商店和boss都不再出现mod饰品,怪物贴图丢失出现黑块等,要解决这个问题,就要修正mod文件夹下的modfiles.txt文件 方法 针对修改量大小,一般有几种方法: 如果修改较少,而且你还记得修改了哪几个文件,找到这几个文件,右键属性,查看大小,要用的是括号里面的字节数,然后打开mod

lttclaw_的专栏 5001

给定一个整数N,求其N!末尾有多少个0

给定一个整数N,求其N!末尾有多少个0? 例如:N=10,N!=3628800,N!末尾有两个0 解析: 10!为=1x2x3x4x5x6x7x8x9x10 其中2x5=10, 1x10=10,10X10=100,末尾两个0. 15!=1x2x3x4x5x6x7x8x9x10x11x12x13x14x15 其中4x5=10, 1x10=10,2x15=30,10X10x30=3000,末尾3个0 ...

qq_43412060的博客 2115

CMOS 图像传感器——Skipping 和 Binning 模式

Skipping 和 Binning 模式

沧海一升的博客 6003

HFSS 3D Layout仿真PCB操作说明

本文介绍一种特别适合PCB这种叠层结构的仿真软件,HFSS 3D Layout既有操作的简便性,又有同3D软件仿真所有的精确性,仿真速度上又比3D软件快很多。

sinat_15150363的博客 3938

输入一个正整数n,求n!末尾有多少个0

思路: 1)按正常思路,我先求出n的阶乘,但是这样做,会使得结果溢出,从而得不到最后的结果。以下是求阶乘的代码,递归。 public static long getNFactorial(int n){         if(n==0){             return 1;         }         return n*getNFactorial(n-1); } ...

say67033的博客 4379

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

[读书笔记]编程之美(二)

[读书笔记]编程之美(二)2.1求二进制数中1的个数 问题:对于一个字节(8bit)的无符号整形变量,求其二进制表示中“1”的个数,要求算法的执行效率尽可能高。 思路: n = n & (n-1);当然因为只有8bit所以直接定义一个256的int数组表,直接返回结果,时间复杂度是O(1)。2.2不要被阶乘吓到 问题:1.给定一个整数N,那么N的阶乘N!末尾有多少个0呢?例如:N=10,N!=362

xy_cpp的博客 569

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

《编程之美》读书笔记(三)——阶乘结果末尾"0"的个数

对于第一个问题,我起初的思路如下:      能贡献末尾“0”的数有两类,一类是自身以“0”结尾,例如,10,560,1000等,另一类是个位数是2和5相乘得到。因为是阶乘,从1到N,所以对于每个个位为5的数,总能找到一个其他位相同个位为2的数与之匹配。所以,只需要去数[1,N]中以“0”结尾的数总共多少个“0”,再加上N/10+(N%10      从1到N,出现“0”结尾次数为N/10;出

记录、分享 858

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain&#39;s apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath(&#39;DeepLearnToolbox&#39;));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand(&#39;state&#39;,0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W&#39;); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand(&#39;state&#39;,0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = &#39;sigm&#39;;%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, &#39;Too big error&#39;);```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand(&#39;state&#39;,0)sae = saesetup([784 100]);sae.ae{1}.activation_function = &#39;sigm&#39;;sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)&#39;)% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;;nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, &#39;Too big error&#39;);```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x&#39;,28,28,60000))/255;test_x = double(reshape(test_x&#39;,28,28,10000))/255;train_y = double(train_y&#39;);test_y = double(test_y&#39;);%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you&#39;ll get around 1.2% errorrand(&#39;state&#39;,0)cnn.layers = { struct(&#39;type&#39;, &#39;i&#39;) %input layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 6, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %sub sampling layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 12, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, &#39;Too big error&#39;);```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, &#39;Too big error&#39;);%% ex2 neural net with L2 weight decayrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex3 neural net with dropoutrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex4 neural net with sigmoid activation functionrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex5 plotting functionalityrand(&#39;state&#39;,0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = &#39;softmax&#39;; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand(&#39;state&#39;,0)nn = nnsetup([784 20 10]); nn.output = &#39;softmax&#39;; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

编程之美读书笔记2.2—不要被阶乘吓倒

问题 1) 给定一个整数N,那么N的阶乘N!末尾有多少个0呢?例如:N=10,N!=3 628 800,N!的末尾有两个0。     2) 求N!的二进制表示中最低位1的位置。  3)给定整数n,判断它是否为2的方幂       问题1详解              解法1:                       解法2:                    代

yuhan_9204的专栏 394

编程之美-翻烙饼问题

翻烙饼问题前言 翻烙饼问题是非常经典的问题,星期五的晚上,一帮同事在希格玛大厦附近的“硬盘酒吧”多喝了几杯。程序员多喝了几杯之后谈什么呢?自然是算法问题。有个同事说: “我以前在餐馆打工,顾客经常点非常多的烙饼。店里的饼大小不一,我习惯在到达顾客饭桌前,把一摞饼按照大小次序摆好——小的在上面,大的在下面。由于我一只手托着盘子,只好用另一只手,一次抓住最上面的几块饼,把它们上下颠倒个个儿,反

rebornyp的博客 2177

编程之美--第二章 读书笔记

2.1 求二进制数中的1的个数 最优解法:复杂度为O(k) k为二进制中1的个数 public int count(int n){ int num=0; while(n){ //从后往前数‘1’的个数 //n&amp;(n-1)这种方式可以消去一个‘1’ //e.g. 10000&amp;01111=00000 n...

ida20111117的博客 187

《Python编程 从入门到实践》读书笔记

说在开头:这是我学习Python过程中的读书笔记,内容不全,会边学习边补充。如果文中有说法错误的地方,欢迎大佬指正~ 1.常用快捷键: 批量注释:Alt+3 把所有要注释的内容用鼠标选中,然后Alt+3,效果是出现两个## 去掉注释:Alt+4 在shell里,上一条命令:Alt+P 下一条命令:Alt+N 2.良好的编程习惯: 在 + - / * = == != || ...

ISNS的博客 2775

读书笔记-数论

离散数学之数论 翻了翻课本,看到数论一章有一个问题:20!的二进制表示从最低位数起有多少个连续的 0 。 课本上直接求 1到20的数 含有因子2的个数和,求出来是 18. 各种不理解,然后百度。看到了《编程之美》一书有同样的问题。 以下内容部分摘自: 大神的读书笔记有两个问题,用到的方法类似 (1)给定一个整数N,那么N的阶乘N!末尾有多少个0?比如:N=10,N!=3628800,N

你记不住我 637

编程之美读书笔记之---”不要被阶乘吓到“

问题一:给定一个整数N,那么N的阶乘末尾有多少个0呢?例如N = 10, N! = 362800,N! 的末尾有两个0. 问题二:求N! 的二进制表示中,最低位1的位置。 问题一的解法一: 最简单的方法就是把N! 算出来,就可以知道末尾有多少个0了。 问题一的解法二: 我们这样想,末尾的0可以从哪里得到呢,10的倍数,例如像10,20,100....这样的,可以贡献0,还有就是2 ...

weixin_30782293的博客 99

Android 面试文档分享

一、概述 最近在准备面试的东西,整理了一些读书笔记分享给各位 百度网盘地址,大家可以自由下载,以下内容完全原创。 前两部分是对于一些 经典书籍的读书笔记 和 面试题,都是上学看书的时候觉得比较重要的部分,就通过Word文档的形式记录下来了。因为一直从事的是Android方面的相关工作,因此还是围绕着Android展开,包括了Java、C++、网络、数据结构等等。 最后一部分是面试时候的算法题,根据...

weixin_33700350的博客 140

Python编程:从入门到实践(读书笔记:第7章 用户输入和while循环)

coding:utf-8! chapter 7 用户输入和while循环 函数input()提示用户输入内容 运用while循环控制程序运行时间 message = input("Tell me something, and I will repeat it back to you: ") print(message) print("\n") sublime text代码编辑器 name = in...

weixin_45508230的博客 383

redis设计与实现读书笔记-数据结构

数据结构: SDS与C字符串的区别: C语言使用长度为N+1的字符数组来表示长度为N的字符串,并且字符数组的最后一个元素总是空字符'\0'。 C字符串并不记录自身的长度信息,所以为了获取一个C字符串的长度,程序必须遍历整个字符串,和C字符串不同,因为SDS在len属性中记录了SDS本身的长度,所以获取一个SDS长度的复杂度仅为O(1)。与C字符串不同,SDS的空间分配策略完全杜绝了发生缓冲区溢出的可能性:当SDS API需要对SDS进行修改时,API会先检查SDS的空间是否满足修改所需的要求,如.

只作为个人备忘录 256

人工智能:现代方法读书笔记(二十五)

第24章的方法有一个共同瓶颈:离散符号表示缺乏泛化能力。在 n-gram 模型中,“cat” 与 “dog” 是两个毫无关联的原子符号,即使训练语料中出现过 “feed the cat”,模型也无法据此提升 “feed the dog” 的概率。手工特征工程(前后缀、词典、句法路径)只能部分缓解,且成本高、跨领域迁移能力差。本章的核心思想是:把语言的每个单位(词、子词、句子)映射为稠密实值向量,让"相似"在向量空间中具有几何意义,并让整个处理管线端到端可微。章节脉络: 一条贯穿全章的主线是表示学习(repr

theperson1的博客 472

基于HarmonyOS API 24实战解析读书笔记应用@Observed 是 ArkUI 状态管理 V1 体系中的一个关键装饰器,它用于装饰类,使被装饰类的实例成为“可观察对象“

本文将对一个完整的 HarmonyOS ArkTS 班级管理助手应用进行逐段源码深度剖析。该应用面向中小学班主任或班级管理者的日常教务场景,将学生信息管理、课程表展示、考勤记录追踪、成绩统计分析四大核心功能模块统一收纳在一个 入口组件中,通过底部 进行模块切换。采用单文件架构(single-file architecture),将数据模型层、常量配置层、Mock 数据工厂层、业务计算函数层与 UI 渲染层全部内聚于同一编译单元内,这种组织方式在中小型 HarmonyOS 应用中非常常见,既能保证代码的可

2301_79516720的博客 191

算法导论第二章小试牛刀

Author: bakari   Date: 2015.9.11 《算法导论》真是一本让人又爱又恨的书,爱自然是因为它精简凝练的算法呈现,读来让人欲罢不能;至于恨,是因为它在进行算法分析的时候所体现的数学思想太过于强大,对于我这种数学不上不下的人来说,自然有几分畏难,以致于我很早就接触这本书,前前后后也粗略地看过几遍,但感觉每一遍都像是重新看一样,没有...

weixin_33940102的博客 102
上一篇: 【编程之美】读书笔记:求二进制数中1的个数
下一篇: 【编程之美】读书笔记:寻找发帖水王
xiaoding133
博客等级 码龄19年 415粉丝 159原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值