假设有总共有10个数,分别是:
1,2,3,4,5,6,7,8,9,10
他们分成3个集合,分别为:
集合1:{1,3,7}
集合2:{2,4,5,8,10}
集合3:{6,9}
问题:如何判断一个随机的数:比如num=rand()%10+1;是否属于一个集合(这个集合也是随机产生的),比如:group=rand()%3+1;
要求:代码越精简越好;void main()
{
int num = rand()%10+1;
int group =rand()%3+1; //如何判断
}
1,2,3,4,5,6,7,8,9,10
他们分成3个集合,分别为:
集合1:{1,3,7}
集合2:{2,4,5,8,10}
集合3:{6,9}
问题:如何判断一个随机的数:比如num=rand()%10+1;是否属于一个集合(这个集合也是随机产生的),比如:group=rand()%3+1;
要求:代码越精简越好;void main()
{
int num = rand()%10+1;
int group =rand()%3+1; //如何判断
}
解决方案 »
- activex如何显示一个资源中工具条?
- 线程中使用COMM口的问题
- 在2000 或者xp环境下 AllocCsToDsAlias函数在哪个模块啊?
- 如何在对话框程序在主对话框出现前先弹出一个登陆对话框
- 天气这么热,空调是有,可没钱交电费不敢用,学C又不顺利,救我啊!线程消息问题!
- 怎样模拟鼠标拖动?
- 请问谁知道哪儿有可以上传软件的服务器呀?我写得几个小东西想上传一下给大家看。
- 不活动的窗口如何将自己提到前台来?
- 如何才能确定一个应用程序打开了那些文件,并把他们和VIEW相联系?
- 关于CBitmapButton 的使用方法
- 使用CGridCtrl表格的两个问题
- 如何在文档类中用异步非阻塞socket
//初始化集合
int Group[10]={0};
for(int i=0;i!=5;++i)
Group[rand()%10] =1;//1是集合Group的编号,rand()%10+1 这个数属于这个集合int num = rand()%10+1;
//判断这个数属于哪个集合
printf("is :%d",Group[num-1]);
表示集合的编号,
如果group=1;表示集合1:{1,3,7}
如果group=2;表示集合2:{2,4,5,8,10}
如果group=3;表示集合3:{6,9}比如num=4;
group = 2;
那么程序的结论是:
4属于集合2;
问题:如何判断一个随机的数:比如num=rand()%10+1;是否属于一个集合(这个集合的集合号也是随机产生的),比如:group=rand()%3+1;group表示一个集合号
if (num==6||num==9)
{
groupNum=3;
}
else if (num==1||num==3||num==7)
{
groupNum=1;
}
else
{
groupNum=2;
}
if (group==groupNum)
{
cout<<" YES "<<endl;
}
else
cout<<" NO "<<endl;
同学你没弄清楚题哦。
LZ是问你
int num = rand()%10+1; //num的范围是从1到10随机选一个
int group =rand()%3+1; //group的范围是1-3随机选一个他有三个集合在上面写着呢。。叫你判断num的数是否属于group这个集合里面的数。。
2 4 5 8 10 表示为 1010011010 ==> 666
6 9 ==> 100100000 ==> 288已知
int num = rand()%10+1;
int group =rand()%3+1;则
int Groups[3]={69,666,288};puts(Groups[group]&(1<<num)?"yes":"no")
int group =rand()%3+1;此处从1开始,所以上面要减一也从0开始才行
1 1
3 11
7 1112 10
4 100
5 101
8 1000
10 10106 110
9 1001
还以为你要问最快的方式,原来是代码最少
int i = rand() % 10 + 1;
unsigned long ul = i;if (ul % 2 == 0)
printf("set 2\n");
else
if (ul % 3 == 0 && ul / 3 > 1)
printf("set 3\n");
else
printf("set 1\n");
int num = rand()%10;
int group =rand()%3;
cout << map[num] == group ? "in" : "out" << endl;在简化就去掉变量的声明
if (ul % 2 == 0)
printf("set 2\n");
集合2还有一个5呢