用python2.7编个程序,拜托~
答案:1 悬赏:30 手机版
解决时间 2021-02-04 02:27
- 提问者网友:我的未来我做主
- 2021-02-03 16:22
用python2.7编个程序,拜托~
最佳答案
- 五星知识达人网友:往事隔山水
- 2021-02-03 17:40
看代码:
# -*- coding: gbk -*-
def get_factorial(n):
"""求一个整数的阶乘"""
factorial = 1
if n > 0:
for i in range(1, n + 1):
factorial *= i
return factorial
def to_binary_str(n):
"""求一个整数的二进制"""
s = ''
while n > 0:
if n % 2 == 1:
s += '1'
else:
s += '0'
n /= 2
else:
s = s[::-1] # s 的反转
return s
def last_index_of_1(s):
"""末尾 '1' 出现的位置,位置从 0 开始"""
s_len = len(s)
for i in range(s_len - 1, -1, -1):
if s[i] == '1':
return i
if __name__ == '__main__':
n = int (raw_input("输入一个整数:"))
factorial = get_factorial(n)
binary_str = to_binary_str(factorial)
index = last_index_of_1(binary_str)
print n, ' 的阶乘为 ', factorial
print factorial, ' 的二进制为 ', binary_str
print binary_str, " 末尾 '1' 的位置为 ", index运行示例:
# -*- coding: gbk -*-
def get_factorial(n):
"""求一个整数的阶乘"""
factorial = 1
if n > 0:
for i in range(1, n + 1):
factorial *= i
return factorial
def to_binary_str(n):
"""求一个整数的二进制"""
s = ''
while n > 0:
if n % 2 == 1:
s += '1'
else:
s += '0'
n /= 2
else:
s = s[::-1] # s 的反转
return s
def last_index_of_1(s):
"""末尾 '1' 出现的位置,位置从 0 开始"""
s_len = len(s)
for i in range(s_len - 1, -1, -1):
if s[i] == '1':
return i
if __name__ == '__main__':
n = int (raw_input("输入一个整数:"))
factorial = get_factorial(n)
binary_str = to_binary_str(factorial)
index = last_index_of_1(binary_str)
print n, ' 的阶乘为 ', factorial
print factorial, ' 的二进制为 ', binary_str
print binary_str, " 末尾 '1' 的位置为 ", index运行示例:
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯