我在SPOJ上找到了解决这个问题的错误答案.
该问题要求计算整数的立方根(可以长达150位),并输出截断最多10位小数的答案.
它还要求将答案模10中所有数字的总和计算为"校验和"值.
这是确切的问题陈述:
您的任务是计算给定正整数的立方根.我们不记得为什么我们需要这个,但它与公主,一个年轻的农民,亲吻和一半的王国(一个巨大的,我们可以向你保证)有一些共同之处.
编写一个程序来解决这个关键任务.
输入
输入以包含单个整数t <= 20(测试用例数)的行开头.t测试案例如下.
下一行包含最多150个十进制数字的大正整数.每个数字都在输入文件的单独行中.输入文件可能包含空行.数字可以在空格之前或之后,但没有行超过255个字符.
产量
对于输入文件中的每个数字,程序应输出一行,其中包含由单个空格分隔的两个值.第二个值是给定数字的立方根,在第10个小数位后截断(不是舍入!).第一个值是立方根的所有打印数字的校验和,计算为模10的打印数字之和.
例
输入:
5
18
1000
2 33076161
输出:
1 1.0000000000
2 2.0000000000
1 10.0000000000
0 1.2599210498
6 321.0000000000
这是我的解决方案:
from math import pow
def foo(num):
num_cube_root = pow(num, 1.0 / 3)
# First round upto 11 decimal places
num_cube_root = "%.11f" % (num_cube_root)
# Then remove the last decimal digit
# to achieve a truncation of 10 decimal places
num_cube_root …Run Code Online (Sandbox Code Playgroud)