//此问题可以看做苹果问题的简化,就是n个苹果放n个盘子,但要考虑到所有情况,还要结合此问题实际。
#include <stdio.h>
int fun(int n,int m)
{
    if(n < 1|| m < 1)
    return 0;
    if(n == 1||m == 1)
    return 1;
    if(n < m)
    return fun(n,n);
    if(n == m)
    return fun(n,m-1)+1;
    if(n > m)
    return fun(n,m-1) + fun(n-m,m);
}
int main(void)
{
   int n,m;
    scanf("%d",&n);
    while(n--)
    {
        scanf("%d",&m);
        printf("%d\n",fun(m,m));
    }
    return 0;
}
整数划分
最新推荐文章于 2024-09-01 14:02:30 发布
          
          
       
          
       
       本文通过递归函数解决了一个经典的组合数学问题:如何将n个苹果放入n个盘子中,使得每个盘子至少有一个苹果。该算法考虑了所有可能的情况,并通过递归的方式实现了高效求解。
本文通过递归函数解决了一个经典的组合数学问题:如何将n个苹果放入n个盘子中,使得每个盘子至少有一个苹果。该算法考虑了所有可能的情况,并通过递归的方式实现了高效求解。
           
                   
                   
                   
                   
       
           
                 
                 
                 
                 
                 
                
               
                 
                 
                 
                 
                
               
                 
                 扫一扫
扫一扫
                     
              
             
                   978
					978
					
 被折叠的  条评论
		 为什么被折叠?
被折叠的  条评论
		 为什么被折叠?
		 
		  到【灌水乐园】发言
到【灌水乐园】发言                                
		 
		 
    
   
    
   
             
            


 
            