数学

1.1 简单数学题

  1、有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

#! /usr/bin/env python
# -*- coding: utf-8 -*-
#题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
sum=0
for i in range(1,5,1):
    for j in range(1,5,1):
        for k in range(1,5,1):
            if i!=j and i!=k and k!=j :
                sum=sum+1
                print i,j,k  # 这里去重
print sum
三位无重复数字

  2、求n的阶乘

#! /usr/bin/env python
# -*- coding: utf-8 -*-
def f(n):
    if n == 1:
        return 1
    else:
        return n * f(n-1)
print f(3)  # 6

''' 推演:
3   # 递归第一层 n=3:f(3) 入栈:【f(3),】
2   # 递归第二层 n=2:f(2) 入栈:【f(3), f(2)】
1   # 递归第三层 n=1
######## 递归到此时 n=1 不满足递归条件开始出栈  ##########
【n:2】【ret:2】 f(2) = 2 * f(1) = 1 * 2
【n:3】【ret:6】 f(3) = 3 * f(2) = 3 * 2 * 1
'''
求n的阶乘:递归

  3、python实现十进制转任意进制

def f(n,x):
    '''
    :param n: n为待转换的十进制数
    :param x: x为机制,取值为2-16
    :return: 返回转换后的进制数
    '''
    a=['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F']
    b=[]
    while True:
        s=n//x   #
        y=n%x    # 余数
        b=b+[a[y]]
        if s==0:
            break
        n=s
    return "".join(b[::-1])
s = f(26,16)
print(s)   # 1A
python实现十进制转任意进制

 

posted @ 2020-03-24 22:10  Repeinsi  阅读(199)  评论(0编辑  收藏  举报