设m,n均为自然数,m可表示为一些不超过n的自然数之和,f(m,n)为这种表示方式的数目.例f(5,3)=5,有5种表示方式:3+2,3+1+1,2+2+1,2+1+1+1,1+1+1+1+1.一下是该函数的程序段,请将未完成的部分填入,使之完整.
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/17 01:44:21
设m,n均为自然数,m可表示为一些不超过n的自然数之和,f(m,n)为这种表示方式的数目.例f(5,3)=5,有5种表示方式:3+2,3+1+1,2+2+1,2+1+1+1,1+1+1+1+1.一下是该函数的程序段,请将未完成的部分填入,使之完整.
设m,n均为自然数,m可表示为一些不超过n的自然数之和,f(m,n)为这种表示方式的数目.例f(5,3)=5,有5种表示方式:3+2,3+1+1,2+2+1,2+1+1+1,1+1+1+1+1.
一下是该函数的程序段,请将未完成的部分填入,使之完整.
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
设m,n均为自然数,m可表示为一些不超过n的自然数之和,f(m,n)为这种表示方式的数目.例f(5,3)=5,有5种表示方式:3+2,3+1+1,2+2+1,2+1+1+1,1+1+1+1+1.一下是该函数的程序段,请将未完成的部分填入,使之完整.
第一行定义了f(m,n)这个函数,返回值即表示方式的数目,为一个整数.
第二行定义了m和n这两个自变量为整数.
if (m==1)
return 1;
这里是说如果m等于1,则函数的返回值为1,显然1只能分解为1,也即表示方式只有一种.
if (n==1)
return 1;
这里是说如果n等于1,则函数的返回值为1,显然无论m多大,n为1时只能表示为m个1之和,也即表示方式只有一种.
if (m
今天 09:38frozencliffs| 六级第一行定义了f(m,n)这个函数,返回值即表示方式的数目,为一个整数。
第二行定义了m和n这两个自变量为整数。
if (m==1)
return 1;
这里是说如果m等于1,则函数的返回值为1,显然1只能分解为1,也即表示方式只有一种。
if (n==1)
retur...
全部展开
今天 09:38frozencliffs| 六级第一行定义了f(m,n)这个函数,返回值即表示方式的数目,为一个整数。
第二行定义了m和n这两个自变量为整数。
if (m==1)
return 1;
这里是说如果m等于1,则函数的返回值为1,显然1只能分解为1,也即表示方式只有一种。
if (n==1)
return 1;
这里是说如果n等于1,则函数的返回值为1,显然无论m多大,n为1时只能表示为m个1之和,也即表示方式只有一种。
if (m
这里是说如果m小于n,则返回值为f(m,m),如果所有的加数都为自然数的话,则最大的加数是不会超过和的,因此在m小于n的情况下加数也必然小于m。
if (m==n)
return 1+f(m,n-1);
这里是说如果m等于n,则返回值为1+f(m,n-1),因为f(m,n)只比f(m,n-1)多了一个m=n的表示方法。
return f(m,n-1)+f(m-n,n);
最后是其他情况,即m大于n的情况,此时的表示方式由两部分组成,一是f(m,n-1),即最大加数为(n-1)时的表示方式数量;而剩下的表示方式则是最大加数为n的情况,因加数中至少有一个n,因此表示方式数量相当于剩下的数字m-n可表示为不大于n的自然数之和,按照函数的定义,表示方式的数量为f(m-n,n)。
收起