题目描述
5个砝码
用天平称重时,我们希望用尽可能少的砝码组合称出尽可能多的重量。
如果只有5个砝码,重量分别是1,3,9,27,81。则它们可以组合称出1到121之间任意整数重量(砝码允许放在左右两个盘中)。
本题目要求编程实现:对用户给定的重量,给出砝码组合方案。
输入
用户输入:
5
输出
程序输出:
9-3-1
样例输入
1
样例输出
1
参考代码
#include <stdio.h>
int main()
{
int a[5]={0},b[5]={1,3,9,27,81},i,n;
scanf("%d",&n);
i=0;
while(n>0)
{
a[i]=n%3;
n=n/3;
i++;
}
for (i=0;i<4;i++)
switch(a[i])
{
case 2:a[i]=-1;
a[i+1]++;
break;
case 3:a[i]=0;
a[i+1]++;
}
for (i = 4; i>=0; i--)
if(a[i])
printf("%d", a[i]*b[i]);
printf("n");
return 0;
}
解析
暂无