06:数学

算法面试其他篇

目录:

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的阶乘:递归

 

111111111111111

猜你喜欢

转载自www.cnblogs.com/xiaonq/p/10488297.html
06