5个砝码,分别是1,3,9,27,81组合出1到121之间任意整数重量,输出的组合总是大数在前小数在后主要是组合方法,,
5个砝码,分别是1,3,9,27,81组合出1到121之间任意整数重量,输出的组合总是大数在前小数在后
主要是组合方法,,
5个砝码,分别是1,3,9,27,81组合出1到121之间任意整数重量,输出的组合总是大数在前小数在后主要是组合方法,,
5个砝码,分别是1,3,9,27,81组合出1到121之间任意整数重量,输出的组合总是大数在前小数在后
主要是组合方法,,
很显然,有时候一种分量的砝码要用到多次,比如2这个值,必须要有2个1才能完成.那么任何一个数n都可以用n个1来组合.这说明,你的题目不严密.至少你需要规定每个砝码的个数上限.不过尽管如此,还是可以用每个砝码最多两次...
就是十进制的数转换成3进制的,看有多少位,就用多少个砝码来组合,是吧?我还想问的是,那个加减一起用的那个方法,找不到规律.(当然我不知道有没有.呵呵!)
不是看多少位,而是看每一位上的数字是多少,就代表有多少个砝码比如12012,就代表用81砝码1个,27砝码2个,9砝码0个,3砝码1个,1砝码2个那个加减一起用的方法,我不知道这个方法具体是怎么样的。但是猜一下,应该是和我的意思一致的。因为这个问题是要用3的幂来进行组合,而3这样的基数有三种选择,用1次,用2次,以及不用。所以用上减法就意味着:用1次作为加法,用一次作为减法,以及不用这3种状态。其中用一次作为减法和我所说的用2个砝码是存在一一对应关系的。比如2这个数字可以用2次1加法得到,也可以用3作为加法,1作为减法叠加起来得到。
如果每个砝码都只能用一次的呢?3进制还可以?
如果用上加减法就可以。关键只在于你要给每个砝码有3种状态可以选择要么:用1次,用2次,用0次,这三种状态要么:用1次作为正数,用1次作为负数,用0次,这三种状态如果这里的砝码是4的幂,如:1,4,16,64,等等,那么你想要表达256以内的数,那么你就需要4种状态。这时候即便用上加减法也不可能每个数只用1次
怎么判断是第几种状态?
为什么要判断是第几种...状态没有次序的...
哦,就是有2的就分一次出来用来减,是吧.
嘛..可能你还不能从核心上理解这个问题,不过仅仅对于3的幂这个问题来讲,你这样理解已经没有问题了~
我的问题是:用什么方法来确定用几个数,用什么方法确定加或减的组合方法.
那就基本就是刚才讲的,以我之前用的12012为例(这个数实际上是140)首先转换成三进制,也就是12012然后从末尾起查看每一位,对于第i位来讲(i从0开始)1.如果是1,则相当于用3的i次方一次2.如果是2,则相当于用3的i次方作为减法1次。并且向高位进13.如果是0,则不需要用到3的i次方对于12012来讲:1.首先第0位(最后1位)为2,所以相当于3的0次方(也就是1)作为减法1次(记为-1),并向高位进1,使得第1位变成22.第1位现在变成了2,所以相当于3的1次方(也就是3)作为减法1次(记为-3),并向高位进1,使得第2位变成13.第2位现在变成了1,所以相当于3的2次方(也就是9)作为加法1次(记为+9)4.第3位为2,所以相当于3的3次方(也就是27)作为减法1次(记为-27),冰箱高位进1,使得第4位变成25.第4位现在变成了2,所以相当于3的4次方(也就是81)作为减法1次(记为-81),并向高位进1,使得第5位(由本来没有)变成16.第5位现在是1,所以相当于3的5次方(也就是243)作为加法1次(记为+243)完成,把上面的数字连起来即可:+243-81-27+9-3-1=140