`
peizhyi
  • 浏览: 30871 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

计算数自然数序列中的1和2

阅读更多

问题:

    给定一个自然数N,计算1,2,3...N中,出现1和2的数量。比如1,2,3...10,一共出现了3次,1,2,3...12,一共出现了7次。

 

思路:

    比如计算54321,可以先计算50000,再计算50001-54321中1和2的个数,而后者又可以看成计算4321中1和2的个数,于是简化了问题。其中计算50000的时候,可以计算49999中有多少个1和2,也就递归转变成了一个已知的求解方法,再加上50000所代表的1和2的个数(0个)。

 

 def count_from_number(number):
     if number < 10:
         if number == 0:
             return 0
         elif number == 1:
             return 1
         else:
             return 2
     number_str = str(number)
     first = number_str[0]
     left = number_str[1:]
     head = first + len(left) * '0'
     count = 0
     count += count_head(int(head))
     if first == '1' or first == '2':
         count += (number - int(head))
     count += count_from_number(int(left))
     return count

 // 这个方法计算1000、50000这种以0结尾的数字中1和2的个数
 def count_head(number):
     number_str = str(number)
     first = number_str[0]
     count = 0
     if first == '1' or first == '2':
         count += 1
     count += count_from_number(number - 1)
     return count

 number = 10
 print("count 1 or 2 for %d"%number)
 print("result: %d"%count_from_number(number))
 number = 12
 print("count 1 or 2 for %d"%number)
 print("result: %d"%count_from_number(number))
 number = 122
 print("count 1 or 2 for %d"%number)
 print("result: %d"%count_from_number(number))

 

分享到:
评论

相关推荐

    斯特林数和自然数前m项n次方和

    斯特林数与自然数前m项n次方和的结合,可能会出现在解决更复杂的数学问题中,如计算特定序列的特性或者解决某些组合优化问题。通过理解和掌握这些基本概念,我们可以更好地理解和解决实际问题。

    用JAVA编写求自然数n到m的和

    在编程领域,计算自然数序列的和是一项基础且常见的任务,尤其在学习编程语言时,如Java。这个任务要求我们编写一个程序,能够接收两个自然数n和m(n ),并计算从n到m所有自然数的和。在这个过程中,我们可以运用...

    回溯法 - 输出自然数1到n所有不重复的排列,即n的全排列

    对于本题中的“输出自然数1到n的所有不重复的排列”,回溯法非常适合,因为它能够有效地生成所有可能的排列组合而不产生重复。 ### 问题描述与分析 题目要求输出自然数1到n的所有不重复排列,即n的全排列。具体来...

    python-24.连续自然数和-兄弟齐心!.py

    例如,我们可以利用Python的数学函数库math中的函数来辅助计算,或者使用Python的内置函数min()和max()来找出满足条件的连续自然数序列的最小值和最大值。此外,Python还提供了异常处理机制,这可以帮助我们在编程...

    一个自然数幂和公式的推导

    在探讨自然数幂和公式推导的过程中,本文章涉及到几个关键的数学概念和方法,包括幂和的概念、递推关系的求解、形式幂级数、生成函数以及递推关系的求解方法。 幂和通常指的是一种求和运算,涉及自然数的连续整数次...

    输出m到n之间所有的自然数的和.zip

    对于连续的自然数序列1到n,其和可以用以下公式表示: \[ S = \frac{n(n + 1)}{2} \] 但是,如果起点不是1,我们需要对这个公式稍作调整。对于m到n的自然数和,我们可以将序列分为两部分:从1到n的和以及从1到m-1...

    pascal取数游戏

    给出2n个(n)个自然数(数小于等于30000)。游戏双方分别为A方(计算机方)和B方(对弈的人)。...a存储2*n个自然数序列;lp,rp为序列的左端位置和右端位置;ch为B方取数的位置信息(‘L’或‘R’);

    算法-连续自然数和(洛谷-P1147)(包含源程序).rar

    例如,如果n=9,k=3,那么连续自然数序列有:1+2+3=6,2+3+4=9。我们需要找出所有这样的序列,并可能以某种形式返回结果,如序列的起始元素或序列本身。 **解决思路:** 这个问题可以通过数学公式简化,连续k个...

    用C语言写的求解自然数e的算法

    通过理解这个简单的循环算法,你不仅能够计算自然数e,还能进一步探索其他数学常数和序列的计算。在实际编程中,可以根据需要调整算法,比如采用更高效的求和方法(如高斯消去法),或者将计算过程并行化以提高计算...

    五年级数学下册 自然数1教案 沪教版 教案.doc

    此外,通过阅读大数字的例子,如9,4608,0000,0000,学生将能更深刻地体会到自然数序列的无限性。为加强学生对自然数的理解,教师还可利用数学游戏或竞赛等形式,让学生在实践活动中深化对数字概念的掌握。 在教学...

    众数问题 code

    算法设计:对于给定的由n 个自然数组成的多重集S,计算S 的众数及其重数。"&gt;:给定含有n 个元素的多重集合S,每个元素在S 中出现的次数称为该 元素的重数。多重集S 中重数最大的元素成为众数。例如,S={1,2,2,2,3,5}...

    擦数游戏 数据结构课程设计

    一个从1开始的连续自然数序列,例如1, 2, 3, 4, 5...,在某个点会有一个数k被擦去。擦去k后,剩下的数的平均值是a/b的形式,其中a和b是整数。这意味着剩余数的总和(不包括k)除以序列中的元素个数(同样不包括k)...

    四年级数学上册 第5单元《倍数和因数》(自然数)综合习题2(无答案)(新版)冀教版 试题.doc

    学生需要明白,虽然在自然数序列中没有最大的数,但最小的自然数确实是0。这是因为0可以被其他任何自然数除,且除后的结果都是0,符合自然数的定义。在填空题中,学生被要求填写小于5的自然数,这不仅考查学生对...

    计算1^1+2^2+....N^N计算结果支持64位++

    标题中的“计算1^1+2^2+....N^N计算结果支持64位++”涉及的是一个数学问题和编程实现,其中“64位++”可能指的是使用64位整数类型来处理大数值,并且可能用C++语言进行编程。这个计算涉及到序列求和,具体来说是平方...

    自然数n次幂的求和公式及其因式分解的Matlab求解.pdf

    本文中给出了系数矩阵对应n=1-16的条件数,这对于理解求和公式计算过程中数值稳定性和误差分析具有重要意义。 4. 多项式函数求和公式及其因式分解 除了自然数幂和公式之外,本文还将讨论的方法应用于所有的一般...

    自己写的排序,最大公约数,取自然数,zigzag等经典C++算法(内附算法说明)

    这些算法涵盖了排序、计算最大公约数以及生成自然数序列和Zigzag序列等多种常见问题。让我们逐一深入探讨这些算法。 1. **排序算法**:排序是计算机科学中的基本问题,用于组织和整理数据。在提供的压缩包中,可能...

    python 求交错序列前n项和.docx

    这个序列具有交替的正负项,每一项的分子是连续的自然数,分母是分子的两倍减一,即序列可以表示为 1-2/3+3/5-4/7+5/9-6/11+...。 描述中提到的“求交错序列前N项和”进一步明确了问题的核心,即我们需要计算序列的...

    分数序列求和

    直观来看,这个序列的第一项为2/1,第二项为3/2,而后续项依次为5/3、8/5、13/8、21/13,以此类推。该序列不仅在数学分析中占有重要地位,在计算机科学中也有广泛的应用。 在编程实现分数序列求和时,一个高效的...

    C 代码 评估各种数学函数、多项式和 序列.rar

    3. **序列处理**:序列在数学中通常指的是按照某种规律排列的一系列数,比如自然数序列、斐波那契序列等。在C语言中,可以通过循环结构和递归函数来生成和操作这些序列。例如,编写一个函数生成斐波那契数列,或者一...

    众数众数众数一个集合如果允许存在相同的元素,则称之为多重集合. 多重集 S 中的元素 x 如果恰好在 S 中出现 r 次, 则称 x 是 r 重的, 也称 r 为 x 的重数. 重数最大的元素称为众数. 例如, S = { 1,2,2,2,3,5 } 的众数是 2, 其重数为 3.

    一个集合如果允许存在相同的元素,则称之为多重集合.... 例如, S = { 1,2,2,2,3,5 } 的众数是 2, 其重数为 3. 本题对于给定的由 n 个自然数组成的多重集 S, 编程计算 S 的众数及其重数. Input

Global site tag (gtag.js) - Google Analytics