枚举算法(一)

来源:互联网 发布:南昌金域名都二手房价 编辑:程序博客网 时间:2024/05/26 09:54
#include <stdio.h>int main(){int j,i[5];int sign;int result;int count = 0;int num[6];float left,right;char oper[5] = {' ','+','-','*','/'};printf("please input five number:\n");for (j = 1;j <= 5;j++){scanf("%d",&num[j]);}printf("please input the result you want:\n");scanf("%d",&result);for (i[1]=1;i[1]<=4;i[1]++){if (i[1]<4 || num[2]!=0){for (i[2]=1;i[2]<=4;i[2]++){if (i[2]<4 || num[3]!=0){for (i[3]=1;i[3]<=4;i[3]++){if (i[3]<4 || num[4]!=0){for (i[4]=1;i[4]<=4;i[4]++){if (i[4]<4 || num[5]!=0){left = 0;right = num[1];sign = 1;for (j=1;j<=4;j++){switch(oper[i[j]]){case '+' :left=left+sign*right;sign =1;right = num[j+1];break;case'-':left = left+sign*right;sign = -1;right = num[j+1];break;case '*':right = right * num[j+1];break;case '/':right = right/num[j+1];break;}}if (left+sign*right==result){count++;printf("%5d: ",count);for (j=1;j<=4;j++){printf("%d%c",num[j],oper[i[j]]);}printf("%d=%d\n",num[5],result);}}}}}}}}}if (count==0){printf("nothing\n");}return 0;}

0 0
原创粉丝点击