怎么编程实现排列组合

怎么编程实现排列组合,第1张

public static String reverse1(String str)

{

   return new StringBuffer(str)reverse()toString();

}

2最常用的方法:

public static String reverse3(String s)

 { 

   char[] array = stoCharArray(); 

  String reverse = "";  //注意这是空串,不是null

   for (int i = arraylength - 1; i >= 0; i--) 

   reverse += array[i]; 

   return reverse; 

  } 

3常用方法的变形:

 public static String reverse2(String s)

  int length = slength(); 

   String reverse = "";  //注意这是空串,不是null

   for (int i = 0; i < length; i++) 

    reverse = scharAt(i) + reverse;//在字符串前面连接,  而非常见的后面

   return reverse; 

  } 

4C语言中常用的方法:

 public static String reverse5(String orig)

  char[] s = origtoCharArray(); 

  int n = slength - 1; 

  int halfLength = n / 2; 

  for (int i = 0; i <= halfLength; i++) { 

    char temp = s[i]; 

   s[i] = s[n - i]; 

   s[n - i] = temp; 

   } 

   return new String(s);  //知道  char数组和String相互转化

  }

使用下拉列表组合框,用户可以在列表中选择互斥的值。 用户只能选择其中一个选项。使用标准的下拉列表,用户只能在列表中进行选择,但是如果加上组合框,他们也可以输入列表中没有的选项。

下列这几点需要明确:

思考以下问题:

除了以上适用于下拉列表的原则,可编辑式下拉列表还需要注意以下几点:

对于下拉列表, 列表中的选项数量不是选择控件的决定因素 ,它们可能只有一个,也可能成千上万。 可编辑式下拉列表的项目数量多少都无所谓,因为用户也可以输入一个不在列表中的值。 而且下拉列表可以用于输入数据,所以可能无法事先知道项的数量,也可能无法限定数据的值。 始终为可编辑式列表框预留出至少三个项目高度的屏幕空间。

下拉列表和及其组合框有以下几种应用范例:

下拉列表 是一个标准的下拉式列表框,包含一组固定的预设值。当列表收起时,只有选中项目是可见的。用户点击下拉按钮时,展现所有选项。如果要变更选项,用户需要点击展开列表,然后选择另一个选项。

预览式下拉列表 是可以预览选择结果以帮助用户进行选择的下拉列表。

可编辑式下拉列表 是一个下拉组合框,它允许用户输入一个下拉列表中不存在的值。

可编辑式列表框 是一个常规组合框,允许用户输入在下方列表框中不存在的值。

提示符是放置在可编辑下拉列表中作为其默认值的标签或短指令。 与静态文本不同的是,一旦用户在组合框中键入某些内容或获得输入焦点,提示符就会从屏幕上消失。

以下情况,可以使用提示符:

不要仅仅使用提示符来指导用户从列表中选择某些内容或单击按钮。 例如,像“选择一个选项”或“输入一个文件名”然后单击“发送”这样文字的提示符是不必要的。

使用提示符的时候,注意:

在提到下拉列表时:

在提到组合框时:

什么是C语言?C语言的简介。

C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。

它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。

因此,它的应用范围广泛,不仅仅是在软件开发上,而且各类科研都需要用到C语言,具体应用比如单片机以及嵌入式系统开发。

语言特点:C是中级语言/C是结构式语言/C语言功能齐全/C语言适用范围大/简洁紧凑、灵活方便/运算符丰富/数据类型丰富/C是结构式语言/语法限制不太严格,程序设计自由度大/适用范围大,可移植性好。

给你个暴力计算的:

#include<stdioh>

int a[10];

void f(int n)

{

while (n)

{

++a[n % 10];

n /= 10;

}

}

int main()

{

int n,i,r;

for (n = 100; n < 400;++n)

{

for (i = 1; i <= 9; ++i)

a[i] = 0;

f(n);

f(2  n);

f(3  n);

r = 1;

for (i = 1; i <= 9; ++i)

r = a[i];

if (r == 1)

printf("%d,%d,%d\n", n, 2  n, 3  n);

}

return 0;

}

结果:

192,384,576

219,438,657

273,546,819

327,654,981

编程思路:

从n个数中选出m个数进行组合(n>m)可以采用递归的方式解决

先从n个数中选一个数出来,然后在剩下的n-1个数当中选取m-1个数进行组合

对于n-1个数,同样有

先从n-1个数中选一个数出来,然后在剩下的n-2个数当中选取m-2个数进行组合

对于n-N个数,同样有

先从n-N个数中选一个数出来,然后在剩下的n-N个数当中选取m-N个数进行组合

如此递归

直到m-N==1为止

当m-N为1的时候,自然不用选了

每次选取的结果放入一个数组当中,作为参数传递下去

当递归到m-N为1的时候,数组和当前选定的值即构成一个有效组合,便可输出

这类问题都可以尝试递归的解决思路,将一个复杂的大问题,一级一级转化为较小的,可以解决的问题

示例代码如下:

void select(

int data/待筛选的数 里面不能有重复的数/,

int n,

int m,

int list[]/假设list长度足够,为m,初始list中的元素值为-1/,

int listlen)

{

    int i,j;

    if(m==1){

        for(i=0;i<n;i++){

            for(j=0;list[j]!=-1;j++)

            {

                printf("%d ",list[j]);

            }

            printf("%d\n",data[i]);//输出一个结果

        }

        return;

    }

    for(int i=0;i<n-m;i++)

    {

       list[listlen-m] = data[i];

       select(data+i+1,n-i,m-1,list,listlen);//递归调用

    } 

}

以上就是关于怎么编程实现排列组合全部的内容,包括:怎么编程实现排列组合、Windows桌面应用程序设计指南(控件篇5-下拉列表&组合框)、什么是C语言程序设计等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9277885.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存