@[propitious](/user/223333)
```
for(k=1;k<100000;k++)
if(b[k]>=10)
{
b[k+1]+=b[k]/10;
b[k]%=10;
m=max(m,k+1);
}
```
你只有在进位时才统计阶乘的长度,如果没进位m就是0,就判断不出来
hack数据
```
3
1 1
2 2
3 6
```
输出为`1 1 1`
但你的代码输出`0 0 0`
by xxx听取AC声一片 @ 2024-02-04 08:00:37
@[xxx听取AC声一片](/user/252401) 最开始定义那里m改成1,还是70分
by propitious @ 2024-02-04 11:57:48
@[propitious](/user/223333) 你在循环里面就应该不断统计阶乘的长度,不管有没有进位
by xxx听取AC声一片 @ 2024-02-04 14:41:31
@[xxx听取AC声一片](/user/252401) 统计了呀,这里m就是,并且每次取m和k+1中较大者作为全数组长度
by propitious @ 2024-02-04 16:31:12
@[propitious](/user/223333) 你前面有个if,也就是数组进位是才统计,你要在if外循环内统计
by xxx听取AC声一片 @ 2024-02-05 14:30:56
@[xxx听取AC声一片](/user/252401) 不满足if也没必要更新位数吧,说明还不如原来的长
by propitious @ 2024-02-05 15:02:23
@[propitious](/user/223333) 你的k一直在++,怎么会不如原来的长?
by xxx听取AC声一片 @ 2024-02-07 19:41:23
你m没有初始化
by dadadeSB @ 2024-02-16 22:55:43
每一次循环要初始化
by dadadeSB @ 2024-02-16 22:56:30