蓝桥杯——天平称重

阅读: 评论:0

蓝桥杯——天平称重

蓝桥杯——天平称重

                                            天平称重

问题描述:

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

用户输入:

5

程序输出:

9-3-1


用户输入:

19


程序输出:

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

思路:

      直接暴力,情况也不多。每个砝码都有三种状态,放左盘/放右盘/不放。多重循环把每种情况都跑一遍。

      输出的时候注意一下格式就行了。

代码:

#include<stdio.h>
#include<string.h>
int main()
{int a[3]={0,-81,81};int b[3]={0,-27,27};int c[3]={0,-9,9};int d[3]={0,-3,3};int e[3]={0,-1,1};int book[5];int i,j,k,n,p,q,flag; while(scanf("%d",&n)!=EOF){memset(book,0,sizeof(book));for(i=0;i<3;i++)for(j=0;j<3;j++)for(k=0;k<3;k++)for(p=0;p<3;p++)for(q=0;q<3;q++){if(a[i]+b[j]+c[k]+d[p]+e[q]==n){book[0]=a[i];book[1]=b[j];book[2]=c[k];book[3]=d[p];book[4]=e[q];break;}}flag=0;for(i=0;i<5;i++){if(flag==0&&book[i]>0){flag=1;printf("%d",book[i]);}else if(book[i]>0)printf("+%d",book[i]);else if(book[i]<0)printf("%d",book[i]);}printf("n");}return 0;
}

 

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

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