算式900(2017蓝桥杯省赛c组题目)

阅读: 评论:0

算式900(2017蓝桥杯省赛c组题目)

算式900(2017蓝桥杯省赛c组题目)

小明的作业本上有道思考题:看下面的算式:(□□□□-□□□□)*□□=900其中的小方块代表0~9的数字,这10个方块刚好包含了0~9中的所有数字。注意:0不能作为某个数字的首位。小明经过几天的努力,终于做出了答案!如下:
(5012-4987)*36=900用计算机搜索后,发现还有另外一个解,本题的任务就是:请你算出这另外的一个解。注意:提交的格式需要与示例严格一致;括号及运算符号不要用中文输入法;整个算式中不能包含空格。

这题刚一拿起题来感觉很简单,不就用几个for循环就解决了。但是你高兴的太早了,当你用for循环时你就会焕然大悟,想得太简单了。for循环超时,根本输不出答案。

最后认真想了下,最后用深搜解决了超时没有答案的问题

下面上代码

#include<stdio.h>
int ans[10];
int mid[10]={0,1,2,3,4,5,6,7,8,9};
int book[10]={0};void dfs(int step)
{int i;int a,b,c;if(step==10){if(ans[0]!=0&&ans[4]!=0&&ans[8]!=0){a=ans[0]*1000+ans[1]*100+ans[2]*10+ans[3];b=ans[4]*1000+ans[5]*100+ans[6]*10+ans[7];c=ans[8]*10+ans[9];if((a-b)*c==900){printf("(%d-%d)*%d=900n",a,b,c);}}}for(i=0;i<10;i++){if(book[i]==0){ans[step]=mid[i];book[i]=1;dfs(step+1);book[i]=0;}}}
int main()
{dfs(0);return 0;
}

 

 

 

本文发布于:2024-02-05 07:53:55,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170727786464709.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:算式   题目   蓝桥杯省赛
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23