整数划分-怎么输出一个一个整数的划分数呢?

问题描述

怎么输出一个一个整数的划分数呢?

例如 输入6
应输出:
可以分划为:
6
5+1
4+2, 4+1+1
3+3, 3+2+1, 3+1+1+1
2+2+2, 2+2+1+1, 2+1+1+1+1
1+1+1+1+1+1+1
我写了整数划分的递归函数,可是怎么实现输出划分呢?

#include
int divide(int n,int m);
void main()
{
int num = 0;
int divide_number = 0;
printf("请输入你要划分的数字: ");
scanf("%d",&num);
divide_number = divide(num,num);
printf("%d",divide_number);
}

int divide(int n,int m)
{
// n:划分的整数
// m:最大加数n1<=m
if(n < 1 || m < 1)
{
return 0;
}
else if(n == 1||m==1)
{
return 1;
}
else if( n < m )
{
//划分中不可能出现负数,因此就相当于divide(n,n);
return divide(n,n);
}
else if( n == m )
{
//n1=m=n
//n1<=n-1
return 1+divide(n,n-1);
}
else //n>m
{
// n>m => divide(n,m) => n1<=m => 1、n1 == m => divide(n-m,m)
// 2、n1 < m => n1<=m-1 => divide(n,m-1)
return divide(n,m-1) + divide(n-m,m) ;
}
}

解决方案

http://zhidao.baidu.com/link?url=VBf-P6JzekYDG2KSiccYmzP-QOFaBjKVXdvQ_VvVHO_Ce92ZcapzL3N-dy7RI4m47E2-RNQXfeGDBTC_NM589EiCCaMmwqKOm1KDWuE5Hdi

时间: 2024-10-21 08:04:57

整数划分-怎么输出一个一个整数的划分数呢?的相关文章

算法-关于整数划分的一个问题

问题描述 关于整数划分的一个问题 最近遇到一个问题.这问题是关于整数划分的.要求是这样的,把一个整数N,划分成K份(不是小于等于K份).每份的值允许重复(例:5,1,1,1).并且要求每份都大于等于X.并且输出每一种划分方法(从大到小排序).求各位大神指点. 解决方案 整数划分问题整数划分问题整数划分问题

python输入一个整数N,输出N的所有最小因子

题目:输入一个整数N,输出N的所有最小因子,也称素因子. 其中,任何一个大于1的数,都可以写成多个素数的乘积,我们把这些素数叫做这个数素因子. 例如: 输入:120 输出:2 2 2 3 5 输入:27 输出:3 3 3 python求解素因子代码如下: # -*- coding:utf-8 -*- def isprime(num): count = num / 2 while count >1: if num % count == 0: return False break else: cou

c++中如何把一个十进制整数转换成二进制然后统计其中1的个数

问题描述 c++中如何把一个十进制整数转换成二进制然后统计其中1的个数 c++中如何把一个十进制整数转换成二进制然后统计其中1的个数 解决方案 做个循环,每次除以2,将余数输出或保存,可转换为二进制,,至于统计,每次除法所得余数为1,使得计数器加1 解决方案二: itoa转为二进制字符串,自己遍历统计1的个数 解决方案三: int x = 123; int count = 0; while (x > 0) { count += x % 2; x /= 2; } 解决方案四: http://cod

c语言-输入一个十进制整数,依次转换成2到16进制数

问题描述 输入一个十进制整数,依次转换成2到16进制数 求大神帮帮忙做一下 我刚刚学C语言 程序代码 弄了好久都没弄出来 大神帮忙编一个程序代码 ,谢谢了 解决方案 #include <iostream> using namespace std; char metachar[] = "0123456789abcdef"; void tobasen(int x, int n) { if (x > 0) { tobasen(x / n, n); cout <<

link中如何产生整十数的随机整数?如何固定一个随机整数?

问题描述 link中如何产生整十数的随机整数?如何固定一个随机整数? link中如何产生整十数的随机整数?如何固定一个随机整数? 解决方案 产生整数的随机数,然后乘以10 或者产生随机数,然后%10取整

用c语言写 一个任意整数的降序数

问题描述 用c语言写 一个任意整数的降序数 #include #include int main(void) { int j,n; int i=0; int a[10]; printf("请输入一个整数: "); scanf("%d", &n); while (n > 0) { a[i] = n % 10; n = n / 10; i++; } for (i=0; i<10;i++) for (j=0;j<10-i-1;j++) { if

javascript-js如何实现在页面指定区域定时输出指定位数整数而不影响其他页面内容

问题描述 js如何实现在页面指定区域定时输出指定位数整数而不影响其他页面内容 比如我要在某个内实现每隔十分钟输出一个随机的7位数 而实现这个功能后又不影响页面的其他功能 求代码实例 解决方案 其他内容 <div id="dvNum"></div> 其他内容 <script> function rnd(min, max) { var tmp = min; if (max < min) { min = max; max = tmp; } retur

c语言-C语言整数转字符串输出

问题描述 C语言整数转字符串输出 #include #include void to_str(n)int n;{ char s[10]; int i = 0; if(n { putchar('-'); n = -n; } do { s[i++] = n%10 +'0'; n/=10; } while(n>0); while(i--)putchar(s[i]);}main(){ int xy; scanf(""%d""&x); to_str(x);}这里

c++ 指针-C++中数组指针怎么输出每一个所谓的一维数组的头一个元素

问题描述 C++中数组指针怎么输出每一个所谓的一维数组的头一个元素 #includeusing namespace std;int main(){int a[3][4] = {{1357}{9111315}{17192122}};int (* p)[4];for(p = a; p < a + 3; p++){cout << ((p + 0)) << "" "";cout << *p <<endl;}cout &l