题目
以下含乘方(a^b即为a的b次幂)、加、减、乘、除的综合运算式(1)的右边为一位非负整数f,请把数字0,1,2,…,9这10个数字中不同于数字 f 的 9个数字不重复地填入式(1)左边的9个□中,(约定数字“1”、“0”不出现在(1)式左边的一位数中,且“0”不为首位),使得该综合运算式成立: □^□+□□÷□-□□□×□=f (1)
满足上述要求的表达式(1)称为完美综合运算式。
输入非负整数f(0≤f≤9),输出相应的完美综合运算式
解析
把运算式变形为z=(d*e+f-a^b)*c
a^b用a自乘b次实现。
同时设置关于a,b,c,d,e循环,所有变量在整数范围内枚举,数字f从键盘输入。
对每一组f,a,b,c,d,e,按上式计算z。
检测z是否为二位数。若计算所得z非二位数,则返回。
分别对7个整数进行数字分离,设置数组g[]对7个整数分离的共10个数字进行统计,g[x]即为数字x(0—9)的个数:
若某一g[x]不为1,不满足数字0,1,2,…,9这10个数字都出现一次且只出现一次,标记t=1.
若所有g[x]全为1,满足数字0,1,2,…,9这10个数字都出现一次且只出现一次,保持标记t=0, 则输出所得的完美综合运算式
#include <stdio.h>
#include <math.h>
int main() {
int a,b,c,d,e,f,z,g[10],k,t,m,n,x;
n=0;
printf(" 请输入式右非负数字f:");