用字符串模拟长整数用list来改变字符串,需要注意的是list里面的元素需要时字符类型的数据使用join()方法将list转变为string,使用list好处就是想要改变元素的值,作为函数参数的时候,list的值是可以改变的注意ord()函数和chr()函数的使用方法num = ord(number[i]) - ord(‘0’) + carry 字符不能直接相减,需要使用ord进行转换number[i] = chr(ord(‘0’) + num) #chr将数组转化为ascii 字符不能直接相加,需要使用ord和chr进行转换
class Solution:
def Increment(self
, number
):
overFlow
= carry
= 0
length
= len(number
)
for i
in range(length
- 1, -1, -1):
num
= ord(number
[i
]) - ord('0') + carry
if i
== length
- 1:
num
+= 1
if num
>= 10:
if i
== 0:
overFlow
= 1
else:
num
-= 10
carry
= 1
else:
carry
= 0
number
[i
] = chr(ord('0') + num
)
return overFlow
def PrintNum(self
, number
):
string
= ''.join
(number
)
for i
in range(len(string
)):
if string
[i
] != '0':
print(string
[i
:])
break
def print1ToMaxOfNDigits(self
, n
):
if n
<= 0:
raise Exception
('Input Error : n!')
number
= ['0'] * n
while not self
.Increment
(number
):
self
.PrintNum
(number
)
Solution
().print1ToMaxOfNDigits
(3)