70求助 错了#1#2#3

P1591 阶乘数码

@[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


|