跳转至

旋涡数:补充解法

贡献:Codex(GPT-6)补充数值反转方案。首选解法见双指针题解。

把输入作为十进制无符号整数读取,前导零自然不影响值。反复取末位、删末位,并令 \(R\leftarrow10R+(V\bmod10)\) .循环中,\(R\) 是已经取出的低位数字按取出顺序拼成的整数;全部处理后,它就是十进制反转值。比较反转值和原值即可。原值为零时循环不执行,两个值都是零。

若非零原值以零结尾,其反转数位会更短,不可能与原值相等;因此整数反转丢弃的前导零不会误判。否则反转前后数位数相同,相等恰好等价于所有对称位相等。

令 \(L\) 为输入数位数。读入与反转总时间 \(O(L)\) ,按本题机器整数模型,额外存储为 \(O(1)\) .所有中间值都少于 \(10^{18}\) ,64 位无符号整数足够。与字符串方案相比无需保存整个字符串,但不适用于超出整数类型值域的大数。

程序:alternative.cpp。