/*首先用三个循环语句求出是满足a+b+c+d=10,a,b,c,d>=1的的各种排列*/#include <stdio.h>#include <math.h>int main(){ long int i,a,b,c,d,mult=0,mult_final=0,aa,bb,cc,dd; int q[11]={0,5,4,8,3,2,9,8,7,5,6}; for(a=1;a<=7;a++) { for(b=1;b<=8-a;b++) { for(c=1;c<=9-a-b;c++) { aa=0; bb=0; cc=0; dd=0; d=10-a-b-c; for(i=1;i<=a;i++) {aa=aa+q[i]*pow(10,(a-i));} for(i=a+1;i<=a+b;i++) {bb=bb+q[i]*pow(10,(a+b-i));} for(i=a+b+1;i<=a+b+c;i++) {cc=cc+q[i]*pow(10,(a+b+c-i));} for(i=a+b+c+1;i<=10;i++) {dd=dd+q[i]*pow(10,(10-i));} printf("%d %d %d %d\t %d %d %d %d \n",a,b,c,d,aa,bb,cc,dd); mult=aa*bb*cc*dd; if(mult>mult_final) { mult_final=mult; printf("%d %d %d %d\n",aa,bb,cc,dd); } } } } printf("mult_final=%d\n",mult_final); return 0;}
|