设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/07/01 23:58:18
![设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.一下是该函数的程序段,请将未完成的部分填入,使之完整.](/uploads/image/z/11622456-0-6.jpg?t=%E8%AE%BEm%2Cn%E5%9D%87%E4%B8%BA%E8%87%AA%E7%84%B6%E6%95%B0%2Cm%E5%8F%AF%E8%A1%A8%E7%A4%BA%E4%B8%BA%E4%B8%80%E4%BA%9B%E4%B8%8D%E8%B6%85%E8%BF%87n%E7%9A%84%E8%87%AA%E7%84%B6%E6%95%B0%E4%B9%8B%E5%92%8C%2Cf%28m%2Cn%29%E4%B8%BA%E8%BF%99%E7%A7%8D%E8%A1%A8%E7%A4%BA%E6%96%B9%E5%BC%8F%E7%9A%84%E6%95%B0%E7%9B%AE.%E4%BE%8Bf%285%2C3%29%3D5%2C%E6%9C%895%E7%A7%8D%E8%A1%A8%E7%A4%BA%E6%96%B9%E5%BC%8F%EF%BC%9A3%2B2%2C3%2B1%2B1%2C2%2B2%2B1%2C2%2B1%2B1%2B1%2C1%2B1%2B1%2B1%2B1.%E4%B8%80%E4%B8%8B%E6%98%AF%E8%AF%A5%E5%87%BD%E6%95%B0%E7%9A%84%E7%A8%8B%E5%BA%8F%E6%AE%B5%2C%E8%AF%B7%E5%B0%86%E6%9C%AA%E5%AE%8C%E6%88%90%E7%9A%84%E9%83%A8%E5%88%86%E5%A1%AB%E5%85%A5%2C%E4%BD%BF%E4%B9%8B%E5%AE%8C%E6%95%B4.)
设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)。
收起