1. 求2的65次方, 这里是求2的38次方
python的int类型到底能储存多大的数字,按照道理来说64位的C INT_MAX 就是2**64. 32位的C 的INT_MAX 就是2**32.
但是python的int 类型比C语言的INT_MAX要来的大。
-
>>> 2**65
-
36893488147419103232
-
>>> sys.int_info
-
sys.int_info(bits_per_digit=30, sizeof_digit=4)
-
>>> sys.float_info
-
sys.float_info(max=1.7976931348623157e+308, max_exp=1024, max_10_exp=308, min=2.2250738585072014e-308, min_exp=-1021, min_10_exp=-307, dig=15, mant_dig=53, epsilon=2.220446049250313e-16, radix=2, rounds=1)
2. 题目在此:
代码如下:
-
def quiz2(num1,num2):
-
l2=[]
-
if num1 > num2:
-
ll=list(range(num2,num1+1))
-
else:
-
ll=list(range(num1,num2+1))
-
for i in ll:
-
answer=prob3n(i)
-
l2.append(answer)
-
print(num1,num2, max(l2))
-
-
def prob3n(num1):
-
counter=1
-
while(num1!=1):
-
counter+=1
-
#print(num1,sep=" ")
-
if num1%2!=0: num1=num1*3+1
-
else: num1=num1//2
-
return counter
-
-
#print(prob3n(10))
-
quiz2(1,10)
-
quiz2(100,200)
-
quiz2(201,210)
-
quiz2(900,1000)
3. 回文字符串():
给你一个字符串a和一个正整数n,判断a中是否存在长度为n的回文子串。如果存在,则输出YES,否则输出NO。
回文串的定义:记串str逆序之后的字符串是str1,若str=str1,则称str是回文串,如"abcba".
我的代码在此:
-
def is_palindrome(word):
-
i=0
-
j=len(word)-1
-
while i < j:
-
if word[i] != word[j]:
-
return False
-
i+=1
-
j-=1
-
return True
-
-
def quiz3(astr,n):
-
#astr: a string
-
#n: a number < len(astr)
-
ll=[astr[i:i+n] for i in range(0,len(astr)-n+1)]
-
print(ll)
-
for i in ll:
-
if is_palindrome(i):
-
print('yes')
-
break
-
else:
-
print('no')
阅读(934) | 评论(0) | 转发(0) |