中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

經典算法2:遞歸求解整數(shù)劃分

2018-07-20    來源:open-open

容器云強勢上線!快速搭建集群,上萬Linux鏡像隨意使用

問題描述:將正整數(shù)n表示成一系列正整數(shù)的和,n=n1+n2+……+nk,返回劃分的方法數(shù)。

比如:6的整數(shù)劃分為11種
 最大數(shù)  
    6           6
    5           5 + 1
    4           4 + 2, 4 + 1 + 1
    3           3 + 3, 3 + 2 + 1, 3 + 1 + 1 + 1
    2           2 + 2 + 2, 2 + 2 + 1 + 1, 2 + 1 + 1 + 1 + 1
    1           1 + 1 + 1 + 1 + 1 + 1

編程實例:

將正整數(shù)n表示成一系列正整數(shù)之和, n=n1+n2+……+nk,其中n1>=n2>=……nk,k>=1,正整數(shù)的這種劃分稱為正整數(shù)n的劃分。正整數(shù)n的不同劃分的個數(shù)稱為正整數(shù)n的劃分數(shù)。

在正整數(shù)n的所有不同的劃分中,將最大加數(shù)n1不大于m的劃分個數(shù)記為q(n,m)?梢越(n,m)如下的遞歸關系:

1、 q(n,1) = 1 ,n>=1 ;    當最大加數(shù)不大于1時,任何正整數(shù)n只有一種表示方式:n = 1+1+……+1 。n個1的  和。

2、q( n,m ) = q( n,n ),n<=m;  最大加數(shù)不能大于n。

3、 q( n,n ) = 1 +  q( n , n-1 );   正整數(shù)的劃分由n1=n和n1<=n的劃分組成。

4、q( n,m ) = q( n,m-1 )+q( n-m,m ), n>m>1;正整數(shù)n的最大加數(shù)不大于m的劃分由 n1=m的劃分和n1<m的劃分組成。

注意:q(n-m,m)表示最大加數(shù)n1=m的劃分。分析如下:

q(n-m,m)是表示將n-m表示成最大加數(shù)不大于m的劃分,因此我們可以知道:

n-m = x,其中x表示最大加數(shù)不大于m的劃分。將m移到右邊,得:n = m + x ;

此時就是將n表示成最大加數(shù)為m的劃分。寫出如下程序:(程序在wintc下編譯通過,運行結果正確)

    #include <stdio.h>  
    #include <stdlib.h>  
    int intPart( int n , int m ) ;  
    void main()  
    {  
        int num ;  
        int partNum = 0 ;  
        printf("Please input an integer:/n") ;  
        scanf("%d",&num) ;  
        partNum = intPart(num,num);  
        printf("%d/n",partNum) ;  
        getch() ;  
    }  
      
    int intPart( int n , int m )  
    {  
         
        if( ( n < 1 ) ||( m < 1 ) ) return 0 ;  
         
         
        if( ( n == 1 )||( m == 1 ) ) return 1 ;  
         
         
        if( n < m ) return intPart( n , n ) ;  
         
         
        if( n == m ) return intPart( n , m-1 ) + 1 ;  
          
         
        return intPart( n , m-1 ) + intPart( n - m , m ) ;  
    }  

標簽:

版權申明:本站文章部分自網(wǎng)絡,如有侵權,請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉載文章言論不代表本站觀點!
本站所提供的圖片等素材,版權歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:貪心Kruskal算法生成樹C實現(xiàn)代碼

下一篇:讀取 android 設備的電池信息