数学の問題:グリフィン:「なに?コンテストの提案。でも私は料理が上手だ!」サンニアン、簡単ではなく、数学の問題を作るだけですか?そこでグリフィンはネットワークを検索し、問題を見つけました。これは次のように表現できます...

タイトル説明

グリフィン:「え?競争の提案。でも私は料理が上手だ!」
サンニアン、それは簡単ではなく、ただ数学の問題を作るだけですか?
そこで、グリフィンはネットワークを検索し、次のように表現できる問題を見つけました。
辞書{1,2、...、n}の文字列の場合、1からnまでのn!の順列はすべて部分文字列である必要があります。そのような文字列の最小の長さ。
同級生A:「ニャー、ニャー?もっと人気がないの?」
たとえば、n枚のDVDに対応する一連のn話があり、各DVDは区別がつかず、プロットの内容で区別できないとします。 DVDエピソードのうち、シリーズを正しい順序で視聴するには、少なくとも何枚のDVDを視聴する必要がありますか?
たとえば、n = 2とすると、2枚のDVDに1、2という名前を付け、121の順序で視聴するため、どちらの1または2が実際の最初のエピソードであっても、視聴できることを保証できます。最小数3で継続的にプロットを正しい順序で終了します。

入力データ

最初の行には整数t(1≤t≤5)があります。これは、データのグループがt個あることを意味します。データの各セットについて:最初の行は正の整数n(1≤n≤5)です。

出力データ

データのグループごとに、最短の長さを示す整数が出力されます。結果は非常に大きくなる可能性があります。109+ 7を法としてください。

サンプル入力

2
1
2

サンプル出力

1
3

経験:「1からnまでのn!順列はすべてその部分文字列です」......あなたの製品

T = int(input())    
for t in range(T):      
    n = int(input())      
    result = 0      
    for n1 in range(1,n+1):          
        temp = 1          
        for n2 in range(2,n1+1):              
            temp *= n2          
        result += temp      
    print(result)  

おすすめ

転載: blog.csdn.net/tianxiefenxiang/article/details/107612726
おすすめ