Pascal编程!高手速进!
梦幻王国钱币面值有五种1、7、49、343、2401(即:70、71、72、73、74)。某人买东西要用现金支付n元,买卖双方可以相互找钱(假设双方各种钱币数量都足够多)...
梦幻王国钱币面值有五种1、7、49、343、2401(即:70、71、72、73、74)。某人买东西要用现金支付n元,买卖双方可以相互找钱(假设双方各种钱币数量都足够多)。
问:买卖双方最少总共需用多少张钱币?
[输入]n(n<=3000) [输出]最少钱币数
[样例]输入:12
输出:4(即:买方用2张7元;卖方找2张1元) 展开
问:买卖双方最少总共需用多少张钱币?
[输入]n(n<=3000) [输出]最少钱币数
[样例]输入:12
输出:4(即:买方用2张7元;卖方找2张1元) 展开
1个回答
展开全部
我给你提供程序的思想,但是程序你自己编。不会可以问。
根据初等数论,显而易见的,我们可以用带余除法来解决这个问题。
首先,你先把钱数转化为7进制。如(672)10=(1650)7
然后先求单方面给,就是纯加法的运算,这很简单,只需要将7进制下的数字和求出来即可。1+6+5=12。
下一步,就要用到找钱了。思想核心就在这里。怎么找钱呢?我们先看看如果单看七进制一位上的数字。可以得到4是中间数,这个数无论是纯加法还是找钱所需张数都一样。即我可以给4张,也可以给你一张比当前大一个面值的,再由你找3张。便于理解,我举例:钱数是11,7进制是14。不看要给的7块,单从剩余4块分析,我可以给4张1块,也可以给1张7块,你找3张一快,钱的张数都是4。
综上,我们推知,当单个位上的数字≤4的时候,我们可利用纯加法(既然都一样用简单的),当数字>4的时候,我们就用找钱。
继续开头的例子。1650的七进制,6>4,5>4,所以应该找钱。怎么找呢?6进一位,所以要给一张7^3也就是343元的代替了6张49元,5进一位,所以也要给一张49元的代替5张7元。
看下面的表格
2401 343 49 7 1
给钱 2 1
找钱 1 2
我们发现,给一张49又找一张49,抵消了;给一张7找2张7,抵消了一张。
因此,我们可以把各个位上给钱和找钱的差的绝对值加起来,2+2=3张。
我们来验证一下。672=343*2-7*2。没错。
那我也说一下程序上怎么实现这个理念呢?纯加法我不说了,分离数就可以。那后面的找钱我建议你定义数组来做,就像上面的表格,两个数组来存储给钱和找钱,然后求差值,有负号就消掉,再求和。当然最后别忘了比较。
有问题可以问我。希望有追加分数,谢谢。
根据初等数论,显而易见的,我们可以用带余除法来解决这个问题。
首先,你先把钱数转化为7进制。如(672)10=(1650)7
然后先求单方面给,就是纯加法的运算,这很简单,只需要将7进制下的数字和求出来即可。1+6+5=12。
下一步,就要用到找钱了。思想核心就在这里。怎么找钱呢?我们先看看如果单看七进制一位上的数字。可以得到4是中间数,这个数无论是纯加法还是找钱所需张数都一样。即我可以给4张,也可以给你一张比当前大一个面值的,再由你找3张。便于理解,我举例:钱数是11,7进制是14。不看要给的7块,单从剩余4块分析,我可以给4张1块,也可以给1张7块,你找3张一快,钱的张数都是4。
综上,我们推知,当单个位上的数字≤4的时候,我们可利用纯加法(既然都一样用简单的),当数字>4的时候,我们就用找钱。
继续开头的例子。1650的七进制,6>4,5>4,所以应该找钱。怎么找呢?6进一位,所以要给一张7^3也就是343元的代替了6张49元,5进一位,所以也要给一张49元的代替5张7元。
看下面的表格
2401 343 49 7 1
给钱 2 1
找钱 1 2
我们发现,给一张49又找一张49,抵消了;给一张7找2张7,抵消了一张。
因此,我们可以把各个位上给钱和找钱的差的绝对值加起来,2+2=3张。
我们来验证一下。672=343*2-7*2。没错。
那我也说一下程序上怎么实现这个理念呢?纯加法我不说了,分离数就可以。那后面的找钱我建议你定义数组来做,就像上面的表格,两个数组来存储给钱和找钱,然后求差值,有负号就消掉,再求和。当然最后别忘了比较。
有问题可以问我。希望有追加分数,谢谢。
更多追问追答
追问
你可以教我pascal编程吗
追答
可以的。但是要周末。
富港检测东莞有限公司
2024-12-25 广告
2024-12-25 广告
ISTA3L是一个基于研究、数据驱动的测试协议,它模拟了由零售公司完成的产品订单被直接运送给消费者时所经历的危险,它允许用户评估包装产品的能力,以承受运输和处理包装产品时所经历的供应链危险,从接收到任何电子商务零售商履行操作,直到最终消费者...
点击进入详情页
本回答由富港检测东莞有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询