33(1到33)个数字,以任意选6个数字相加之和等于104 有几组

2024-12-20 14:07:57
推荐回答(4个)
回答1:

那些人的回答貌似看不懂,用中文我来解释一下
用首尾相加的方法分成3组用104除以3,但无法整除,得34余2,即有两组的和数为34,另一组为36,举一个例子
1 33 2 32 5 31,前四个数已定,看最后两个数相加得36即可。有6 30;7 29。。。。。。再看几组
2 32 3 31 6 30
3 31 4 30 7 29
4 30 5 29 8 28
。。。。。。。。
看出来了吧,前四个数用回笼法逼近,每两个数和等于34,后两个数在剩下的数中找两个和等于36即可,明白吗?

回答2:

#include
main(){
int a,b,c,d,e,f,g;
long i=0;
for( a=1;a<=33;a++)
for( b=a+1;b<=33;b++)
for( c=b+1;c<=33;c++)
for( d=c+1;d<=33;d++)
for( e=d+1;e<=33;e++)
for( f=e+1;f<=33;f++)
{g=a+b+c+d+e+f;
if(g==104){i=i+1;
printf("%d+%d+%d+%d+%d+%d=104\n",a,b,c,d,e,f); }
} printf("%ld",i);
getch();
}

共有19995种

回答3:

#include

int main()
{
int cnt = 0;
int i,j,k,x,y,z;
for(i=1; i<=33; ++i)
for(j=i+1; j<=33; ++j)
for(k=j+1; k<=33; ++k)
for(x=k+1; x<=33; ++x)
for(y=x+1; y<=33; ++y)
for(z=y+1; z<=33; ++z)
if(i+j+k+x+y+z == 104)
{
printf("%d+%d+%d+%d+%d+%d=104\n",i,j,k,x,y,z);
cnt++;
}
printf("cnt=%d\n",cnt);
}
19995组

回答4:

n = 19995

Sub main()
n = 0
For a = 1 To 33
For b = a + 1 To 33
For c = b + 1 To 33
For d = c + 1 To 33
For e = d + 1 To 33
For f = e + 1 To 33
If a + b + c + d + e + f = 104 Then n = n + 1
Next f
Next e
Next d
Next c
Next b
Next a
End Sub