标签:
1 填数字问题
1 #include <stdio.h> 2 int main() 3 { 4 int i1,i2,i3,i4,i5; 5 long multi,result; 6 for(i1=1;i1<=9;i1++) 7 { 8 for(i2=0;i2<=9;i2++) 9 { 10 for(i3=0;i3<=9;i3++) 11 { 12 for(i4=0;i4<=9;i4++) 13 { 14 for(i5=0;i5<=9;i5++) 15 { 16 multi=i1*10000+i2*1000+i3*100+i4*10+i5; 17 result=i5*100000+i5*10000+i5*1000+i5*100+i5*10+i5; 18 if(multi*i1==result) 19 { 20 printf("\n%5d%2d%2d%2d%2d\n",i1,i2,i3,i4,i5); 21 printf("X%12d\n",i1); 22 printf("______________\n"); 23 printf("%3d%2d%2d%2d%2d%2d\n",i5,i5,i5,i5,i5,i5); 24 } 25 } 26 } 27 } 28 } 29 } 30 getch(); 31 return 0; 32 }
2 填符号问题
1 #include <stdio.h> 2 int main() 3 { 4 int j,i[5]; //循环变量 ,数组i用来表示4个运算符 5 int sign;//累加运算时的符号 6 int result; //保存运算式的结果值 7 int count=0; //计数器,统计符合条件的方案 8 int num[6]; //保存操作数 9 float left,right; //保存中间结果 10 char oper[5]={‘ ‘,‘+‘,‘-‘,‘*‘,‘/‘}; //运算符 11 printf("请输入5个数:"); 12 for(j=1;j<=5;j++) 13 scanf("%d",&num[j]); 14 printf("请输入结果:"); 15 scanf("%d",&result); 16 for(i[1]=1;i[1]<=4;i[1]++)//循环4种运算符,1表示+,2表示-,3表示*,4表示/ 17 { 18 if((i[1]<4) || (num[2]!=0))//运算符若是/,则第二个运算数不能为0 19 { 20 for(i[2]=1;i[2]<=4;i[2]++) 21 { 22 if((i[2]<4) || (num[3]!=0)) 23 { 24 for(i[3]=1;i[3]<=4;i[3]++) 25 { 26 if((i[3]<4) || num[4]!=0) 27 { 28 for(i[4]=1;i[4]<=4;i[4]++) 29 { 30 if((i[4]<4) || (num[5]!=0)) 31 { 32 left=0; 33 right=num[1]; 34 sign=1; 35 for(j=1;j<=4;j++) 36 { 37 switch(oper[i[j]]) 38 { 39 case ‘+‘: 40 left=left+sign*right; 41 sign=1; 42 right=num[j+1]; 43 break; 44 case ‘-‘: 45 left=left+sign*right; 46 sign=-1; 47 right=num[j+1]; 48 break;//通过f=-1实现减法 49 case ‘*‘: 50 right=right*num[j+1]; 51 break;//实现乘法 52 case ‘/‘: 53 right=right/num[j+1];//实现除法 54 break; 55 } 56 } 57 if(left+sign*right==result) 58 { 59 count++; 60 printf("%3d:",count); 61 for(j=1;j<=4;j++) 62 printf("%d%c",num[j],oper[i[j]]); 63 printf("%d=%d\n",num[5],result); 64 } 65 } 66 } 67 } 68 } 69 } 70 } 71 } 72 } 73 if(count==0) 74 printf("没有符合要求的方法!\n"); 75 getch(); 76 return 0; 77 }
标签:
原文地址:http://www.cnblogs.com/wozixiaoyao/p/5655965.html