列出集合A={x|x∈Z,1≤x≤n}的r元子集
来源:互联网 发布:网络暴力案例 编辑:程序博客网 时间:2024/04/30 19:04
我采用了有序线性表的方式列出集合A={x|x∈Z,1≤x≤n}的r元子集。这个程序已经在windows xp环境下win_tc1.9.1平台调式成功。源程序如下:
#include<stdio.h>
/* 列出集合A={x|x∈Z,1≤x≤n}的r元子集 */
/* 数组value作为一个临时堆栈,用于暂存集合A的一个r元有序子集 */int setSub(int value[],int n,int r)
{
int i=0; /* 循环变量 */
int top; /* 堆栈指针 */
int index=0; /*统计r元有序子集的个数*/if(n>=r) /* 只有n≥r时,才有非空集r元有凶蛹?*/
{
for(i=0;i<r;i++)
value[i]=i+1; /* 将r元的第一个有序子集暂存于value堆栈中 */
top=i-1;
while(value[0]<=n-r+1) /* r元有序子集的第一个元数不能大于全集中第n-r+1个元数 */
{
if(value[top]<=n-r+top+1)/* r元有序子集的每一个元数不能大于全集中第n-r+top+1个元数 */
{
index++; /* 统计r元有序子集的个数 */
printf("{"); /* 输出r元的有序子集 */
for(i=0;i<r;i++)
printf("%d,",value[i]);
printf("/b}/n");
value[top]++;
}
else
{
top--;
if(value[top]<=n-r+top+1)
{
value[top]++;
for(i=top+1;i<r;i++)
value[i]=value[i-1]+1;
top=i-1;
}
}/*if */
}/*while*/
}/*if*/
else
{
printf("{}");
index=1;
}
return index;
}void main()
{
int value[7],n=6,r=7,total;
printf("------------------------------------/n");
total=setSub(value,n,r);
printf("/n------------------------------------/n");
printf("/ntotal:%d",total);
getch();}
- 列出集合A={x|x∈Z,1≤x≤n}的r元子集
- x^1 + x ^2 +...+x ^n = m 求x
- x = power(a , (n -1)>>1);
- 证明题:证明当n是一个整数且n>2时,方程x^n+y^n=z^n无正整数x,y,z的解。
- python 4-1-1 Linux shell常见的通配符 * ? [a-z] {"a","x"} [!a-z] \
- z = x++
- -a -v -n -x 5 -r 100:10 -l 300
- x > y ? y : x > z ? z : x;
- hdu 3930 X^N=a(mod) p 求X
- x=x+1,x+=1,x++的区别
- 用小于等于n元去买100只鸡,大鸡5元/只,小鸡3元/只,还有一种1/3元/只得小鸡,分别记为下,x,y,z只,编程求解x,y,z所有可能解
- 连续赋值与求值顺序var a = {n:1};a.x = a = {n:2}; alert(a.x);
- 连续赋值与求值顺序var a = {n:1};a.x = a = {n:2}; alert(a.x)
- a<=1 && !x++
- hdu4282 x^z+y^z+x*y*z=k 解的个数
- x=x&(x-1)
- x=x&(x-1)
- x = x&(x-1)
- 学习Servlet,我们应该懂的
- 使用WTL+OGRE编写3D程序(4) - 多窗口的渲染
- BugFree2.0安装教程汇总
- XTrap驱动分析
- 关于HOOK截入中文输入
- 列出集合A={x|x∈Z,1≤x≤n}的r元子集
- VipShell驱动隐藏模块
- 3K下载者.txt
- 心路
- E文积累_20080322_minutes
- CSDN下载频道积分2.0
- NND,今天真倒霉
- MFC应用程序中处理消息的顺序,创建窗口的过程关闭窗口的顺序(非模态窗口),打开模式对话框的函数调用顺序
- 拖动对话框,如何限制拖动大小