常见的彩票号码都是由一些数字组成的,生成彩票的号码其实就是将所有的数字进行不同的组合。例如,假设有一种彩票,每注由7个1-29的数字组成,且这7个数字不能相同,编写程序生成所有的号码组合:
#include<iostream>
#include<windows.h>
#define num 7
#define max 20
using namespace std;
int temp[max];
int con[num];
void resort(int a,int b);
int main()
{
for(int i=0;i<max;i++)
temp[i]=i+1;
for(int i=0;i<num;i++)
con[num]=0;
resort(num,max);
return 0;
}
void resort(int a,int b)//a代表8
{
for(int i=b;i>=a;i--)
{
con[a-1]=temp[i-1];
if(a>1)
{
resort(a-1,i-1);
}
else
{
for(int i=num-1;i>=0;i--)
cout<<con[i]<<" ";
system("PAUSE");
cout<<endl;
}
}
}
对解集合中各解进行试探
{
<

本文介绍如何通过回溯法生成一种彩票的全部可能组合。彩票号码由7个不重复的1-29之间的数字构成。程序通过试探、满足条件时保存结果、递归调用来实现所有组合的生成,并在所有解试探完成后输出。
最低0.47元/天 解锁文章
980

被折叠的 条评论
为什么被折叠?



