You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何统计0到n平方数中指定数字d的出现次数?函数实现疑问

解决nb_dig函数统计数位中数字出现次数的问题

你的问题出在list.count(d)只会统计列表中完全等于d的元素,无法识别元素数位里的d。要实现需求,需要把每个平方数转成字符串,逐个统计每一位中d的出现次数,再累加总数。

修改后的代码如下:

def nb_dig(n, d):
    total = 0
    target_char = str(d)
    for i in range(n + 1):
        square_str = str(i ** 2)
        total += square_str.count(target_char)
    return total

代码说明:

  1. 先把目标数字d转成字符串target_char,方便和平方数的每一位字符比对
  2. 遍历0到n的每个数,计算平方后转成字符串
  3. 用字符串的count方法统计当前平方数中target_char的出现次数,累加到总计数total里
  4. 最后返回总计数

测试你的例子:当n=4、d=1时,遍历得到的平方字符串分别是"0"、"1"、"4"、"9"、"16",统计其中"1"的出现次数:"1"贡献1次,"16"贡献1次,总共2次,符合预期结果。

内容的提问来源于stack exchange,提问作者Bombardini

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 02:35:19