博主时隔很长时间,终于回来了。今天给大家分享的是C(m,n)问题,利用回溯方法,大家可以看看,希望对大家能有帮助~
代码如下:
#include<stdio.h> int main(){ int i=1,n,m,a[100],g; printf("请输入n和m的值:"); scanf("%d %d",&n,&m); a[m+1]={0}; a[i]=1; while(i>0){ g=1; for(int j=1;j<i;j++){ if(a[i]<=a[j]){ g=0; break; } } if(g && i<m){ i=i+1; a[i]=1; continue; } if(g && i == m){ for(int z=1;z<m+1;z++){ printf("%d ",a[z]); } printf("\n"); } while(a[i]==n) i=i-1; a[i] = a[i]+1; } }
运行结果:
以上就是今日分享的算法,希望对大家啊有好处~~
C(m,n)组合问题——回溯方法
最新推荐文章于 2024-08-15 10:12:07 发布