蓝桥杯练习——天平称重(暴力)

阅读: 评论:0

蓝桥杯练习——天平称重(暴力)

蓝桥杯练习——天平称重(暴力)

                                              天平称重

问题描述:

用天平称重时,我们希望用尽可能少的砝码组合称出尽可能多的重量。
如果只有5个砝码,重量分别是1,3,9,27,81。则它们可以组合称出1到121之间任意整数重量(砝码允许放在左右两个盘中)。
本题目要求编程实现:对用户给定的重量,给出砝码组合方案。
例如:

用户输入:

5

程序输出:

9-3-1

用户输入:

19

程序输出:

27-9+1
要求程序输出的组合总是大数在前小数在后。
可以假设用户的输入的数字符合范围1~121。

解题思路:

用  -1、0、1  来表示五个砝码是否使用,是放在天平左端还是右端。直接暴力求解。

程序代码:

#include<stdio.h>
#include<string.h>
int main()
{int a,b,c,d,e;int num,x;while(scanf("%d",&x)!=EOF) {for(a=-1;a<=1;a++)for(b=-1;b<=1;b++)for(c=-1;c<=1;c++)for(d=-1;d<=1;d++)for(e=-1;e<=1;e++){if(x==81*a+27*b+9*c+3*d+1*e){if(a==1){printf("81");if(b==-1)printf("-27");if(b==1)printf("+27");if(c==-1)printf("-9");if(c==1)printf("+9");if(d==-1)printf("-3");if(d==1)printf("+3");if(e==-1)printf("-1");if(e==1)printf("+1");}if(a==0&&b==1){printf("27");if(c==-1)printf("-9");if(c==1)printf("+9");if(d==-1)printf("-3");if(d==1)printf("+3");if(e==-1)printf("-1");if(e==1)printf("+1");}if(a==0&&b==0&&c==1){printf("9");if(d==-1)printf("-3");if(d==1)printf("+3");if(e==-1)printf("-1");if(e==1)printf("+1");}if(a==0&&b==0&&c==0&&d==1){printf("3");if(e==-1)printf("-1");if(e==1)printf("+1");}if(a==0&&b==0&&c==0&&d==0&&e==1){printf("1");}printf("n");}}}return 0;} 

 

本文发布于:2024-02-01 15:23:13,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170677219437562.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