(C语言)运算符填空
【问题描述】输入 5 个数与一个结果,设计程序在 5 个数中填入运算符( +、 -、 *、 /)使其与结果相等,或回答做不到。5个数顺序固定,运算顺序固定为从左向右,不考虑运算符优先性。除法按整数除法来运算,保证有解的输入都是有唯一解的。
【输入形式】5个整数a, b, c, d, e和一个结果整数result。0<a,b,c,d,e<50。
【输出形式】依次输出4个运算符,以空格隔开;没有解时输出"No solution"。
【样例输入1】
1 1 1 1 1 5
【样例输出1】
【样例输入2】
2 3 4 5 6 -100
【样例输出2】
No solution
#include <stdio.h>
int fun(int a,char op,int b)
{
switch(op)
{
case '+':
return a+b;
case '-':
return a-b;
case '*':
return a*b;
default:
{
if(b!=0)
return a/b;
return 999999999;
}
}
return 0;
}
int main()
{
char op[4] = {'+','-','*','/'};
int a,b,c,d,e,result,num=0;
scanf("%d%d%d%d%d",&a,&b,&c,&d,&e);
scanf("%d",&result);
for(int i=0;i<4;i++)
for(int j=0;j<4;j++)
for(int k=0;k<4;k++)
for(int m=0;m<4;m++)
{
if(fun(fun(fun(fun(a,op[i],b),op[j],c),op[k],d),op[m],e) == result)
{
printf("%c %c %c %c\n",op[i],op[j],op[k],op[m]);
num++;
}
}
if(num==0)
printf("No solution");
return 0;
}