整数划分算法(代码)
来源:互联网 发布:20后网络数字用语 编辑:程序博客网 时间:2024/06/07 04:10
#include <stdio.h>#include <stdlib.h>#include <string.h>/*输入n(1-10之间数字),将数字分解显示, 如6可以显示为6,5+1,4+2,4+1+1..... *///计算划分种数int divideNumber(int n,int m){ if(m==1 || n==1) return 1; if(n<m) return divideNumber(n,n); else if(n==m) return divideNumber(n,m-1)+1; else return divideNumber(n-m,m)+divideNumber(n,m-1);}//输出划分结果void divide(char *s,int first,int other){ int i; static char t[50]; //保存上一次的输出结果 char temp[50],str[3]={0}; if(other==0) { if(s[0]==t[0]) printf(",%s",s); else printf("%s",s); strcpy(t,s); } for(i=other;i>=1;i--) { if(i>first) continue; strcpy(temp,s); str[0]='+'; str[1]=i+'0'; strcat(s,str); divide(s,i,other-i); strcpy(s,temp); }}void main(){ int i; int n; char s[50]={0}; char str[3]={0}; printf("请输入要划分的数:\n"); scanf("%d",&n); printf("划分种数:%d\n",divideNumber(n,n)); for(i=n;i>=1;i--) { if(i==n) printf("%d",n); else { s[0]=0; str[0]='0'+i; strcat(s,str); divide(s,i,n-i); } puts(""); } return 0;}
0 0
- 整数划分算法(代码)
- 基本算法(整数划分)
- 算法实现(4)整数划分问题
- 算法设计:整数划分
- 算法设计:整数划分
- [算法]整数划分问题
- 递归算法---整数划分
- 递归算法-->整数划分
- 递归算法---整数划分
- 算法:整数划分
- 【分治算法】整数划分
- 整数划分问题(递归算法)
- 整数划分问题及其算法
- 算法笔记之 整数划分
- 【算法】 递归求解整数划分
- 整数划分问题 ----- 递归算法
- DP算法之整数划分
- 整数划分问题递归算法
- 加载网络图片显示大图
- EditText与TextView共舞(setOnKeyListener)
- 剑指offer和leetcode解题报告
- Tomcat启动报错:java.lang.NoClassDefFoundError: javax/el/ExpressionFactory
- Eclipse控制台输出中文乱码问题的解决
- 整数划分算法(代码)
- 毕业设计第十六天
- RabbitMQ学习小结(四)—— Routing[Python]
- cf 625 Guest From the Past (买饮料_锻炼思维的题)
- Hibernate之Could not getconstructor for org.hibernate.persister.entity.SingleTableEntityPersister
- 欢迎使用CSDN-markdown编辑器
- js面向对象--创建对象
- 在Fedora下建立交叉编译环境
- 为什么要学习Java呢?