自然数N中1的个数计算公式 - 排列组合方法
假设N的位数为d(例如N=1234,则d=4),可以将N拆分为高位和低位两部分,分别计算高位和低位中1的个数。\n\n首先,对于高位部分,可以从1到N的最高位数值中选取一个数(例如N=1234,则最高位数值可选取1、2、3),每个数都有10^(d-1)个选择。对于选取的数来说,其最高位上的1的个数为10^(d-1)。\n\n其次,对于低位部分,可以从0到9的每个数中选取一个数,每个数都有10^(d-2)个选择。对于选取的数来说,其低位上的1的个数为10^(d-2) * (d-1)。\n\n因此,高位和低位中1的个数之和为:10^(d-1) + 10^(d-2) * (d-1) * (N // 10) + 1(如果N的个位大于等于1)。\n\n将上述公式推广到任意位数的自然数N,即可得到通用的公式。
原文地址: https://www.cveoy.top/t/topic/pIrh 著作权归作者所有。请勿转载和采集!