本题用C++需要写高精度计算,高精的写法自然不必我多说。Python自带高精度,于是我尝试使用Python仅用一行代码通过本题,写出了以下代码,但是最后一个数据点RE。
(lambda x: bool(__import__("sys").set_int_max_str_digits(1000000)) or print(str(len(x))+"\n"+x[:min(len(x), 100)]))(str((lambda x: 3**(x//3) if x%3==0 else (3**(x//3-1)*4 if x%3==1 else 3**(x//3)*2))(int(input()))))
奇怪的是,我已经扩大了数字转字符串长度限制,然而不起作用。
但是,我接着写出了下面的一行代码,却真的一行通过了本题,没有遇到RE:
bool((lambda x: __import__("sys").set_int_max_str_digits(1000000))(1)) + bool((lambda x: print(str(len(x))+"\n"+x[:min(len(x), 100)]))(str((lambda x: 3**(x//3) if x%3==0 else (3**(x//3-1)*4 if x%3==1 else 3**(x//3)*2))(int(input())))))
我对这一现象表示不解,请求各位解释和指导。