# 输入若干个数,打印最大值(考虑负数,非用户输入数慎用)
# max = 0
max = int(input('>>>'))
while True:
inp = int(input('>>>'))
if not inp: # 输入0结束
break
else:
if inp >= max:
max = inp
print(max)
# 100以内的奇数和(判断奇偶,跳步,位运算)
sum = 0
for i in range(1,100,2):
sum += i
print(sum)
sum = 0
for i in range(100):
if i&1:
sum += i
print(sum)
# 输入一个数字计算位数(二分法,与除法计算相比)
import random
import datetime
number = random.randint(1,10**128)
print(number)
start = datetime.datetime.now()
def countwei(num):
lo = 0
hi = 128
while lo < hi:
mid = (lo+hi)//2
if num >= 10**mid:
lo = mid + 1
else:
hi = mid
return lo
digit = coutwei(number)
delta = (datetime.datetime.now()-start).total_seconds()
print(delta)
print('*'*int(digit))
print('#'*50)
# 除法计算number位数
print(number)
start = datetime.datetime.now()
cnt = 0
while number > 0:
number //= 10
cnt += 1
delta = (datetime.datetime.now()-start).total_seconds()
print(delta)
print('*'*cnt)
# str计算数字长度,效率高
start = datetime.datetime.now()
length = len(str(onumber))
delta = (datetime.datetime.now()-start).total_seconds()
print(delta)
print('*'*length)
# 数学算法效率最高,import math math.ceil(math.log(number+1, 10))
# 从后到前输出一个数字的每一位,
# while实现
number = random.randint(0,10**6)
print(number)
bi = len(str(number))
# 减法
num1 = number
for i in range(bi):
c = num1 // 10
k = num1 - c*10
print(k,end='')
num1 = c
print()
num2 = number
while num2 > 0:
c = num2 // 10
k = num2 - c*10
print(k,end='')
num2 = c
print()
# 除法
num3 = number
while num3 > 0:
k = num3 % 10
print(k,end='')
num3 //= 10
num4 = number
for i in range(bi,0,-1):
k = num4 // 10**(i-1)
print(k,end='')
num4 %= 10**(i-1)
print()
# 最大五位,正序输出,范围给定,充分利用数据, flag达到某一条件状态改变
c = int('04009')
lenth = 5
mxb = 10000
flag = False
for i in range(5):
k = c//mxb
if flag:
print(k,end='')
else:
if not k:
lenth -= 1
else:
print(k,end='')
flag = True
c %= mxb
mxb //= 10
print()
print(lenth)