xinxinxxyy 2023-01-27 03:26 采纳率: 100%
浏览 164
已结题

leetcode上面的题,求解

img


我用了两种写法 前面的答案都没问题 就是到了n==130的时候,一种得到答案为2(正确答案),一种得到的答案为4,但是,我把第二种错误答案的代码改一下,就是把下面的for循环,改成i=2开始,答案就变成了2,就正确了,我不知道为什么,百思不得其解,求解!!

img


这是第一种正确的代码,求平方数的个数就相当于在求深度,这里的深度体现在temp+1上

img

这是第二种答案有错误的代码,n等于130的时候出现了错误正确答案是2,这个dfs得出来的是4,我想的是每往下递归一层,index就+1,这里的index是层数(深度),初始化为0 只要我把i初始化为2 答案就正确了 不知道是什么原因 我觉得这两种写法应该是一个意思啊。

  • 写回答

2条回答 默认 最新

  • X-道至简 2023-01-27 14:29
    关注

    我运行了一下,第一种和第二种结果是一样的
    是不是可能栈运行有异常的情况
    你这样试试:

    1. 测试一:输入90(=81+9)看是不是对的,如果是对的,说明程序逻辑没有啥问题,注意下各个变量的初始化
    2. 测试二:把for从1到sqrt(n),改成从大sqrt(n)到1在试一下130的情况
    3. 注意取的sqrt(n)值要能循环到,比如130,要能到循环到11
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 2月4日
  • 已采纳回答 1月27日
  • 创建了问题 1月27日

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵