@[joey1105](/user/1158999) 粗略地看了看,问题可能在 `(i<=add&&((add-i)/(9-k))<=2)&&i<=2` 这里
我要回宿舍了,明天有空再看
by Shen_Linwood @ 2023-11-30 22:06:19
@[Shen_Linwood](/user/480444) 对对对,我当时也觉得这里有问题,但是就是不知道到底怎么错了,谢谢大佬帮我看,感恩
by joey1105 @ 2023-12-01 12:37:43
糟糕,今天也没空
我在打膜你赛,明天再看吧(逃
by Shen_Linwood @ 2023-12-01 19:35:53
好好好,打完了,来看看
```
1 7
0
2 7
0 0
3 7
0 0 0
4 7
0 0 0 0
5 7
0 0 0 0 0
6 7
0 0 0 0 0 0
7 7
0 0 0 0 0 0 0
7 7 end
7 6
0 0 0 0 0 0 1
7 6 end
7 5
0 0 0 0 0 0 2
8 5
0 0 0 0 0 0 2 0
8 5 end
8 4
0 0 0 0 0 0 2 1
8 4 end
8 3
0 0 0 0 0 0 2 2
8 3 end
7 5 end
6 7 end
6 6
0 0 0 0 0 1
7 6
0 0 0 0 0 1 0
7 6 end
7 5
0 0 0 0 0 1 1
8 5
0 0 0 0 0 1 1 0
8 5 end
8 4
0 0 0 0 0 1 1 1
8 4 end
8 3
0 0 0 0 0 1 1 2
8 3 end
7 5 end
7 4
0 0 0 0 0 1 2
8 4
0 0 0 0 0 1 2 0
8 4 end
8 3
0 0 0 0 0 1 2 1
8 3 end
8 2
0 0 0 0 0 1 2 2
9 2
0 0 0 0 0 1 2 2 0
10 0
0 0 0 0 0 1 2 2 0 2
9 2 end
9 1
0 0 0 0 0 1 2 2 1
10 0
0 0 0 0 0 1 2 2 1 1
9 1 end
```
在 `find()` 开头输出 `k`、`add` 和 `temp[]`,在结尾输出 `k`、`add` 和 `"end"`
by Shen_Linwood @ 2023-12-01 21:59:06
哦,我明白了
观察到
```
7 7
0 0 0 0 0 0 0
7 7 end
```
这说明代码在 `find(7,7)` 里面,`i=0` 时就退出了循环
by Shen_Linwood @ 2023-12-01 22:06:45
欸好像没毛病
by Shen_Linwood @ 2023-12-01 22:10:29
但是它到 `find(7,6)` 的时候确实出了毛病,它在 $i=0$ 时退出了循环
by Shen_Linwood @ 2023-12-01 22:12:44
我们想让它做什么呢?
在 `find[]` 为 `0 0 0 0 0 0 1` 时,下一个数可以取 `2`,即 `2 2 2`,这样是满足条件的
但是在 $i=0$ 时循环就退出了,没有考虑 $i=2$ 的情况
by Shen_Linwood @ 2023-12-01 22:15:44
所以,应该倒序循环
然后应该就没问题了(
by Shen_Linwood @ 2023-12-01 22:16:28
```
((add-i)/(9-k))<=2
```
这个应该放在for条件外面,啊啊啊啊谢谢谢谢,我看了你说的一下就明白了,太感谢了,大佬是怎么debug的,感觉有方法的样子,好高效啊
by joey1105 @ 2023-12-02 16:55:52