完美综合运算式 -- 算法作业之枚举

该博客探讨了如何使用枚举算法解决一个数学问题,即构造一个满足特定条件的完美综合运算式,其中涉及乘方、加、减、乘、除等运算。文章详细解析了将运算式转化为(z=(d*e+f-a^b)*c)的形式,并通过循环枚举变量a、b、c、d、e来寻找符合条件的表达式。在每一步中,检查计算结果z是否为两位数,且所有数字0到9各出现一次。最终,通过统计每个数字出现次数的数组g[]来判断是否找到解决方案。
摘要由CSDN通过智能技术生成

题目

以下含乘方(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:");
	
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值