问题是获取 'n' 数字并打印由 space 分隔的每个数字。可能是什么问题?
problem was to get 'n' digit number and print each digit separated by a space. What might be the problem?
我尝试了以下代码,但如果位数小于 16,它会给出正确答案。就像我输入 number=111000111000111
,它会给出正确答案,但如果 number=111000111000111000
,它会给出错误答案.
print("Enter a number of any length")
a=int(input())
b=str(a)
x=len(b)
print(b)
print(x)
for b in b:
if x<0:
break
print(int(a/pow(10,x-1))%10,end=" ")
x=x-1
正确输出:
Enter a number of any length
111000111000
111000111000
12
1 1 1 0 0 0 1 1 1 0 0 0
如果位数 > 16,则输出错误:
Enter a number of any length
123456789999900987654321 #input
123456789999900987654321 #converted string
24 #length of string
1 2 3 4 5 6 7 8 9 9 9 9 9 0 0 0 8 2 2 0 6 4 4 6 #output
大约是整数的大小。您可以使用以下代码实现您的目的:
print("Enter a number of any length")
num = input("Enter a number of any length: ")
print("len of input {}".format(len(num)))
print(' '.join(num))
问题在于您使用了 /
,这给游戏带来了浮点数的不准确性。使用 //
进行整数除法,您将得到正确的输出。
无论如何,另一种方式:
>>> number = 123456789999900987654321
>>> print(*str(number))
1 2 3 4 5 6 7 8 9 9 9 9 9 0 0 9 8 7 6 5 4 3 2 1
或者,由于您让用户将数字作为字符串输入,因此无需转换为 int 并返回字符串:
>>> print(*input())
123456789999900987654321
1 2 3 4 5 6 7 8 9 9 9 9 9 0 0 9 8 7 6 5 4 3 2 1
我尝试了以下代码,但如果位数小于 16,它会给出正确答案。就像我输入 number=111000111000111
,它会给出正确答案,但如果 number=111000111000111000
,它会给出错误答案.
print("Enter a number of any length")
a=int(input())
b=str(a)
x=len(b)
print(b)
print(x)
for b in b:
if x<0:
break
print(int(a/pow(10,x-1))%10,end=" ")
x=x-1
正确输出:
Enter a number of any length
111000111000
111000111000
12
1 1 1 0 0 0 1 1 1 0 0 0
如果位数 > 16,则输出错误:
Enter a number of any length
123456789999900987654321 #input
123456789999900987654321 #converted string
24 #length of string
1 2 3 4 5 6 7 8 9 9 9 9 9 0 0 0 8 2 2 0 6 4 4 6 #output
大约是整数的大小。您可以使用以下代码实现您的目的:
print("Enter a number of any length")
num = input("Enter a number of any length: ")
print("len of input {}".format(len(num)))
print(' '.join(num))
问题在于您使用了 /
,这给游戏带来了浮点数的不准确性。使用 //
进行整数除法,您将得到正确的输出。
无论如何,另一种方式:
>>> number = 123456789999900987654321
>>> print(*str(number))
1 2 3 4 5 6 7 8 9 9 9 9 9 0 0 9 8 7 6 5 4 3 2 1
或者,由于您让用户将数字作为字符串输入,因此无需转换为 int 并返回字符串:
>>> print(*input())
123456789999900987654321
1 2 3 4 5 6 7 8 9 9 9 9 9 0 0 9 8 7 6 5 4 3 2 1