數的變幻(和數能表示1~23的5個正整數)
阿新 • • 發佈:2019-01-04
/**************************************** * File Name : figure.c * Creat Data : 2015.1.29 * Author : ZY *****************************************/ /*數的變幻*/ /*和數能表示1~23的5個正整數*/ /*已知五個互不相同的的正整數之和為23,且從這五個數中挑選若干個加起來可以表示 表示從1到23之內的全部自然數,問這五個數都是什麼?*/ #include <stdio.h> int main(void) { int a,b,c,d,e,i,j,k,l,m,x,count = 0,f = 0;//f:分解的5個數可以表示為1~23的標記 printf("There are following possible result:\n"); for(a = 1;a < 24;a++)//將23分解成a,b,c,d,e五個數 { for(b = 1+a;b < 24-a;b++) { for(c = 1+b;c < 24-a-b;c++) { for(d = 1+c;d < 24-a-b-c;d++) { f = 1; if((e=23-a-b-c-d)>d) { for(f = 0,x = 1;x<24&&!f;x++)//判斷5個數可否表示1~23 { for(f = 1,i = 0;i<2&&f;i++)//窮舉五個數的全部取捨 { for(j = 0;j<2&&f;j++) { for(k = 0;k<2&&f;k++) { for(l = 0;l<2&&f;l++) { for(m = 0;m<2&&f;m++) { if(x == a*i+b*j+c*k+d*l+e*m) { f = 0; } } } } } } } if(!f) { printf("[%2d] :%2d %2d %2d %2d %2d\n",++count,a,b,c,d,e); } } } } } } return 0; }