設(shè)m,n均為自然數(shù),m可表示為一些不超過(guò)n的自然數(shù)之和,f(m,n)為這種表示方式的數(shù)目.例f(5,3)=5,有5種表示方式:3+2,3+1+1,2+2+1,2+1+1+1,1+1+1+1+1.
一下是該函數(shù)的程序段,請(qǐng)將未完成的部分填入,使之完整.
int f(m,n)
int m,n;
{ if (m==1)
return__(1) ;
i[backcolor=rgba(255,255,255,0)]if (n==1)
[backcolor=rgba(255,255,255,0)] return__(2) ;}
[backcolor=rgba(255,255,255,0)]if (m
第一行定義了f(m,n)這個(gè)函數(shù),返回值即表示方式的數(shù)目,為一個(gè)整數(shù).
第二行定義了m和n這兩個(gè)自變量為整數(shù).
if (m==1)
return 1;
這里是說(shuō)如果m等于1,則函數(shù)的返回值為1,顯然1只能分解為1,也即表示方式只有一種.
if (n==1)
return 1;
這里是說(shuō)如果n等于1,則函數(shù)的返回值為1,顯然無(wú)論m多大,n為1時(shí)只能表示為m個(gè)1之和,也即表示方式只有一種.
if (mm
m,f(2,3)=f(2,2)。而當(dāng)m>n時(shí),比如f(6,4),分成兩類討論:如果最大的加數(shù)為3,則按照定義共有f(6,3)種表示方法;而剩下的表示方法中必然有一個(gè)最大的加數(shù)4,由于總和為6,因此可知其余的加數(shù)之和為6-4=2,而要使小于等于4的自然數(shù)之和等于2,按照函數(shù)定義共有f(2,4)種可能性。因此f(6,4)=f(6,3)+f(2,4)。