求 1-33中任意六个数字的和值为100的所有排列组合

2022-11-01 11:52发布

有7091个#include #define sum(x1,x2,x3,x4,x5,x6) (x1+x2+x3+x4+x5+x6)#defin

有7091个#include #define sum(x1,x2,x3,x4,x5,x6) (x1+x2+x3+x4+x5+x6)#defin
1条回答
2022-11-01 12:39 .采纳回答
有7091个

#include <stdio.h>
#define sum(x1,x2,x3,x4,x5,x6) (x1+x2+x3+x4+x5+x6)
#define print(x1,x2,x3,x4,x5,x6) printf("%d+%d+%d+%d+%d+%d=100\n",x1,x2,x3,x4,x5,x6)

int main(){
int i,j,k,l,m,n;
int num[33];
int Number=0;
for(i=0;i<33;i++)num[i]=i+1;
for(i=0;i<33;i++)
for(j=i+1;j<33;j++)
for(k=j+1;k<33;k++)
for(l=k+1;l<33;l++)
for(m=l+1;l<33;l++)
for(n=m+1;n<33;n++)
if(sum(num[i],num[j],num[k],num[l],num[m],num[n])==100)
{Number+=1;
print(num[i],num[j],num[k],num[l],num[m],num[n]);}

for(i=0;i<33;i++)
for(j=i+1;j<33;j++)
for(k=j+1;k<33;k++)
for(l=k+1;l<33;l++)
for(m=l+1;l<33;l++)
if(sum(num[i],num[i],num[j],num[k],num[l],num[m])==100)
{Number+=1;
print(num[i],num[i],num[j],num[k],num[l],num[m]);}
printf("There are %d.",Number);
system("pause");
return 0;
}