1-10 这十个数字 要求分成若干组,每组七个数字。每组内部的数字不能重复,组与组之间的七个数字不能完全相同。
大哥们能给些思路吗?初学,思路希望是基本些的。
解决方案 »
- 5. 给出10个数,使用某种排序方法,按照从小到大的顺序输出各个数。
- 百分问几道面试题
- 如何用java生成一个XML文件,并且将该文件压缩成ZIP格式后再写到硬盘上?
- 关于Rectangle和DimenSion两种方法????
- 请问了:怎么在JTable的单元格里加JPanel?
- 请大家帮我看这段不复杂的代码并注释一下
- 有没有人做bpel(business processes execute language)的开发的
- 一个基础的问题
- 如何从Vector中提取任意类型的对象(是否涉及强制类型转换)?
- 兩個對象都是用DatagramSocket監視同一個端口,但其中一個的DatagramSocket不能創建,這是為什麼,怎麼解決這個問題?
- 有人知道sort的具体过程吗
- 变态公司的上机测试,40分钟你行吗?
由于这道题的数目比较小,可以用这种方法.(数字太多就不好办了)
10选7不好办,可以有10选3,然后将其余的7个放入数组.
public void main(String arg[])
{
int a,b,c,counter=0;
int array[1000][7],i,j;
for(a=1;a<=10;a++)
for(b=1;b<=10;b++)
for(c=1;c<=10;c++)
{
if(a>b&&b>c)
{
for(j=0,i=1;i<=10;i++)
if(i!=a&&i!=b&&i!=c)
array[counter][j++]=i;
counter++;
}
}
counter--;
while(counter)
{
for(i=0;i<7;i++)
System.out.print(" "+array[counter]);
System.out.println(" ");
counter--;
}
}
最外层的三个for循环将产生3的10次方个序列而只保留a>b>c这一种情况就能保证不重复.
以 4 选 2 为例,按照从小到大的顺序来选以避免重复。首先选 1,那么有 2,3,4 三种选法;首先选 2,那么有 3,4 两种。首先选 3,则只有一种,那么 4 选 2 总共可以列举出 6 种选法。
System.out.print(" "+array[counter]); 改为System.out.print(" "+array[counter][i]);