鱼C论坛

 找回密码
 立即注册
查看: 4642|回复: 9

[技术交流] 一道国软件专业人才设计与开发大赛的题目

[复制链接]
发表于 2011-6-13 18:39:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
如题,具体题目我忘记了。我说说细节。
有一个天枰,5个砝码,分别有1g 3g 9g 27g 81g。
用这5个砝码来秤出1-121直之间的重量(包括1和121)。然后显示出来。要用到“+”“-”符号。
例如:输入 6
          输出 9 - 3

          输入 7
          输出 9-3+1

          输入 11
          输出 9+3-1
数字的输出要按照大的数字在左边,小的数字在右边。
每个数字只能用一次。
要用最简单的方式输出。

砝码.png

这道题我觉得很难做,希望论坛的同学们都看一下。
大家发发自己的源码吧~~我的源码写得很烂,我会迟点发出来得。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-6-13 22:54:50 | 显示全部楼层
  1. #include<stdio.h>
  2. int main(){
  3.         int n,i;
  4.         int vec[]={1,3,9,27,81};
  5.         while(scanf("%d",&n)!=EOF){
  6.                 int first=0;
  7.                 n+=121;
  8.                 for(i=4;i>=0;n%=vec[i--])
  9.                         switch(n/vec[i]){
  10.                         case 0:printf("-%d",vec[i]);++first;break;
  11.                         case 2:printf("%s%d",first?"+":"",vec[i]);++first;
  12.                         }
  13.                 printf("\n");
  14.         }
  15. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-6-13 23:05:43 | 显示全部楼层
本帖最后由 仰望天上的光 于 2011-6-13 23:09 编辑

先来看3只砝码时各种重量的称法,如下表所示,其中-1表示砝码放在物品一边、0表示砝码不放进天平、1表示砝码放在物品另一边,如果每一位加1后便只会是0、1、2这3个数字中的一个,所以可以方便地跟三进制数对应起来:
aa.jpg
上表值所以十进制数+13是因为13=9+3+1;对于1,3,9,27,81;该十进制数应该加上81+27+9+3+1=121。剩下的看程序应该很容易理解了。


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-6-14 00:42:47 | 显示全部楼层
:hug:膜拜膜拜!实在太强了~分析得很好!学习了!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-6-14 10:35:16 | 显示全部楼层
此题可以扩展为:
输入整数n,用m个砝码来秤出1-n之间的重量(包括1和n)。给出m的最小值以及每个砝码的总量。并对于[1,n]内的任意输入,输出砝码的称量方法。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-6-14 15:54:41 | 显示全部楼层
我只想说 这个程序的算法还真有点意思哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-6-17 17:47:48 | 显示全部楼层
:(:(:(:(:(:(:(
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-7-18 13:46:20 | 显示全部楼层
不错不错 学习学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-7-18 13:57:45 | 显示全部楼层
每个砝码只有一个,版主第计算14的时候是用了两次1g的砝码,计算14的时候应该27-1-3-9 =14吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-7-1 23:08:23 | 显示全部楼层
看看老帖,学习学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-23 00:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表