乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > 0-8四位数相加得八的<em>全排列</em>在<em>excel</em&g

0-8四位数相加得八的<em>全排列</em>在<em>excel</em&g

作者:乔山办公网日期:

返回目录:excel表格制作


#include <stdio.h>
int t=0;
void main()
{
char a[8]={'0','0','0','0','0','0','0','0'};
int f=0,i;
int getnext(char *);
while(t>=0)
{
if(t==7) {for(i=0;i<8;i++) printf("%c",a[i]);printf("\n");f=getnext(a+7);}
else if(f) f=getnext(a+t);
else t++;
}
}

int getnext(char *c)
{
if(*c=='9') *c='A';
else if(*c=='Z') {t--;*c='0';return 1;}
else (*c)++;
return 0;
}

任意单元格中输入
=SMALL(IF(MMULT(--MID(ROW($1007:$8000),{1,2,3,4},1),{1;1;1;1})=8,ROW($1007:$8000)),ROW(A1))
同时按下CTRL+SHIFT+ENTER输入数组公式,用自动填充柄下拉119行。
只排2位与3位的数字是吧。
在任意单元格输入公式:
=TEXT(SMALL(IF((ABS(MID(ROW($10:$333),1,1)-2)<2)*(ABS(MID(ROW($10:$333),2,1)-2)<2)*(ABS(MID(ROW($10:$333)&3,3,1)-2)<2)*(MID(ROW($10:$333),1,1)<>MID(ROW($10:$333),2,1))*(MID(ROW($10:$333),2,1)<>MID(ROW($10:$333),3,1))*(MID(ROW($10:$333),1,1)<>MID(ROW($10:$333),3,1)),ROW($10:$333),999),ROW()),"[<333]#;")
公式以CTRL+SHIFT+回车三键结束
将公式向下复制。

如果你不会VBA,有个手动的方式也可以生成,耗时2-3分钟就可以了7a686964616fe78988e69d83365
我给出VBA方法,确保你的工作簿里有个工作表的名称是“Sheet3”,然后运行下面一段宏:
Sub test()
su = 1
For a = 1 To 8
For b = 1 To 8
If b <> a Then
For c = 1 To 8
If c <> a And c <> b Then
For d = 1 To 8
If d <> a And d <> b And d <> c Then
For e = 1 To 8
If e <> a And e <> b And e <> c And e <> d Then
For f = 1 To 8
If f <> a And f <> b And f <> c And f <> d And f <> e Then
For g = 1 To 8
If g <> a And g <> b And g <> c And g <> d And g <> e And g <> f Then
For h = 1 To 8
If h <> a And h <> b And h <> c And h <> d And h <> e And h <> f And h <> g Then
Worksheets("Sheet3").Range("C" & su).Value = a & b & c & d & e & f & g & h
su = su + 1
End If
Next
End If
Next
End If
Next
End If
Next
End If
Next
End If
Next
End If
Next
Next
End Sub

相关阅读

关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网