难道是我的速读出了问题?

P1866 编号

确实是吧 我换成我的快读就过了: ```cpp inline int read() { char ch=getchar(); int x=0,f=1; while(ch<'0'||ch >'9') { if(ch=='-') f=-1; ch=getchar(); } while('0'<=ch&&ch<='9') { x=x*10+ch-'0'; ch=getchar(); } return x*f; } ```
by Xeqwq @ 2022-04-20 20:10:35


@[CalmKin](/user/570330) getchar()拿到的是符号不是数字,是以ASCII码保存的,所以每次*10的时候你还要减去'0' 我不知道^48行不行
by Xeqwq @ 2022-04-20 20:12:10


哦我知道了 ```while(ch<'0'&&ch>'9'){```是什么东西 这个肯定不会满足啊
by Xeqwq @ 2022-04-20 20:13:45


@[CalmKin](/user/570330) ```cpp int read() { char ch; int val=0; ch=getchar(); while(ch<'0'||ch>'9'){ ch=getchar(); } while(ch>='0'&&ch<='9'){ val=(val<<1)+(val<<3)+(ch-'0'); ch=getchar(); } return val; } ``` 这个就行了
by Xeqwq @ 2022-04-20 20:14:27


@[整活队长xeq](/user/229373) `ch^48` 是对的
by Seal_l @ 2022-04-20 20:20:07


@[整活队长xeq](/user/229373) 噢噢原来是这样,太感谢啦
by CalmKin @ 2022-04-20 21:18:44


我就不删帖子了,作为一次教训hhh ~~太羞耻了,逃~~~
by CalmKin @ 2022-04-20 21:20:18


虽然过了,但是比scanf还慢了1ms emmm
by CalmKin @ 2022-04-20 21:21:52


|