没有合适的资源?快使用搜索试试~ 我知道了~
整数划分,并输出相应结果,注释完整,可以运行,C/C++
资源推荐
资源详情
资源评论
#include <stdio.h>
//使用一个数组记录在递归过程中产生的前面需要重复输出的值
int set[100];
//用于在递归过程中判断是否递归到最深处,输出回车
int k;
int q1(int n, int m){//整数的划分数函数
if(n<1 || m<1) return 0;
if(n==1 || m==1) return 1;
if(n<m) return q1(n,n);
if(n==m) return (q1(n,m-1)+1);
if(n>m)return(q1(n,m-1)+q1((n-m),m));
}
//此函数表示使用不大于m的整数对n进行拆分的情况,i用于表示set数组已经存在//的记录数长度
void q(int n,int m,int i){
if(n==k&&n!=m){
//此时递归栈已经退回到某一分支的最上层,输出回车
//并重置计数器i为0
printf("\n");
i=0;
}
if(n==1){
//当n为1,意味者着只能表示1
printf("1 ");
return;
}
else if(m==1){
//当m为1,意味着要输出n个m相加
for(int i=0; i<n-1; i++)
printf("1+");
printf("1 ");
//使用一个数组记录在递归过程中产生的前面需要重复输出的值
int set[100];
//用于在递归过程中判断是否递归到最深处,输出回车
int k;
int q1(int n, int m){//整数的划分数函数
if(n<1 || m<1) return 0;
if(n==1 || m==1) return 1;
if(n<m) return q1(n,n);
if(n==m) return (q1(n,m-1)+1);
if(n>m)return(q1(n,m-1)+q1((n-m),m));
}
//此函数表示使用不大于m的整数对n进行拆分的情况,i用于表示set数组已经存在//的记录数长度
void q(int n,int m,int i){
if(n==k&&n!=m){
//此时递归栈已经退回到某一分支的最上层,输出回车
//并重置计数器i为0
printf("\n");
i=0;
}
if(n==1){
//当n为1,意味者着只能表示1
printf("1 ");
return;
}
else if(m==1){
//当m为1,意味着要输出n个m相加
for(int i=0; i<n-1; i++)
printf("1+");
printf("1 ");
资源评论
无边际的梦想无止境的追求
- 粉丝: 6
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功