美文网首页
阶乘问题

阶乘问题

作者: lmem | 来源:发表于2016-12-26 21:55 被阅读14次
Paste_Image.png
class Solution(object):
    """
    :type n: int
    :type k: int
    :rtype: str
    """
    def getPermutation(self, n, k):
        jc = [1]#存放阶乘的数组
        num = [] #存放序列1,2,3,4
        for i in range(2,n):
            jc.append(jc[-1]*i)
        for i in range(n):
            num.append(i+1)
        result = "" #返回的字符串

        #循环判断第i个值的位置
        for i in range(n-1):
            if k == 0 or k == 1:
                break
            #当前所在区间
            s = int(k/jc[n-i-2])
            if k%jc[n-i-2] > 0:
                s+=1
            #m放在第一个位置的下标
            m = s - 1
            #新k,
            k -= jc[n-i-2] * (s-1)
            #调整位置
            temp = num[m+i]
            while m > 0:
                num[m+i] = num[m+i-1]
                m -= 1
            num[i] = temp
        result = ""
        for i in range(len(num)):
            result += str(num[i])
        return result
s = Solution()
s.getPermutation(3,6)


相关文章

  • 阶乘问题

  • L1-013. 计算阶乘和

    L1-013. 计算阶乘和 问题描述:L1-013. 计算阶乘和 java代码: 结果

  • JavaScript pratice2

    问题描述: 计算所提供整数的阶乘。如果使用字母n代表一个整数,则阶乘是所有小于或等于n的整数的乘积。阶乘通常简写成...

  • 数据结构与算法(六)递归

    首先先提出一个问题,如何用递归去求解5的阶乘,这是一个经典的递归问题.我们都知道5的阶乘求法是5×4×3×2×1....

  • SICP——构造程序抽象(三)

    1.线性的递归和迭代 先从阶乘的问题入手,计算n的阶乘(n!),也就是: n!=n*[(n-1)*(n-2)*(n...

  • 求助帖 long和int 问题

    做一个求阶乘和的问题,把int型换成long就会报错为什么public class A1{//求阶乘的和publi...

  • Java 实现阶乘算法

    Java 实现阶乘算法 阶乘算法如下: 以下列出 0 至 20 的阶乘: 0!=1,(0 的阶乘是存在的) 1!=...

  • 专题:递归与累加阶乘

    递归实现累加和阶乘 累加核心代码: 阶乘的核心代码: 阶乘的非递归实现思路: 阶乘的非递归实现核心代码:

  • Factorial

    使用循环计算阶乘 使用递归计算阶乘

  • 大数阶乘(N! Plus)问题

    1.解题思路 将正整数N从1到N逐位相乘,即1 * 2 * 3...... * (N-1) * N。每次相乘后的值...

网友评论

      本文标题:阶乘问题

      本文链接:https://www.haomeiwen.com/subject/lahsvttx.html