力扣数论
数论(更新中)1、数根基础知识数根又称数字根$(Digital root)$,是自然数的一种性质,每个自然数$num$都有一个数根。对于给定的自然数,反复将各个位上的数字相加,直到结果为一位数,则该一位数即为原自然数的数根。 计算数根的最直观的方法是模拟计算各位相加的过程,直到剩下的数字是一位数。 设自然数$num$的数根为$x$,设$a_i$为$num$每一位的数,则$$\begin{align}num &=\sum_{i=1}^{n} a_i \times 10^i \&=\sum_{i=1}^{n} a_i \times (10^i-1+1) \&=\sum_{i=1}^{n} a_i \times (10^i-1)+\sum_{i=1}^{n} a_i\end{align}$$当$i=0$时,$10^i-1=1-0=0$,是$9$的倍数;当$i\neq0$时,$10^i-1$是由很多个$9$组成,如$9、99、999$等,也是$9$的倍数,因此可以得...
力扣算法知识相关
算法知识相关(更新中)1 前缀和1.1 基础知识$\bigstar$表示前$i$个位置的数字的和。常见的就是,$sum$数组下标从$1$开始,则其初始化过程为 123for(int i=1;i<=a.size();i++){ sum[i]=sum[i-1]+a[i];} $\bigstar$若$sum$数组下标从$0$开始,则其初始化过程为 1234sum[0]=a[0];for(int i=1;i<a.size();i++){ sum[i]=sum[i-1]+a[i];} $\bigstar$计算$i \in [l,r]$范围内数的和,则和为$sum[r]-sum[l-1]$。但!要!注意!$l-1$有可能是负数的问题! 以及!要注意!有些题$l$和$r$是计算出来的,可能会出现$l>r$的情况,还可能出现$l$和$r$大于前缀和数组最大下标的情况!!!这些都要注意了!!! 若$sum$数组下标从$1$开始,则$[l,r]$范围内数的和为$sum[r]-sum[l-1]$ 若$sum$数组下标从$0$开始...