砝码称重
2017-02-14 17:01
211 查看
5个砝码
用天平称重时,我们希望用尽可能少的砝码组合称出尽可能多的重量。
如果只有5个砝码,重量分别是1,3,9,27,81。则它们可以组合称出1到121之间任意整数重量(砝码允许放在左右两个盘中)。
本题目要求编程实现:对用户给定的重量,给出砝码组合方案。
例如:
用户输入:
5
程序输出:
9-3-1
用户输入:
19
程序输出:
27-9+1
要求程序输出的组合总是大数在前小数在后。
可以假设用户的输入的数字符合范围1~121。
#include<stdio.h>
int main()
{
int a[3]={0,-1,1};
int b[3]={0,-3,3};
int c[3]={0,-9,9};
int d[3]={0,-27,27};
int e[3]={0,-81,81};
int i,j,k,l,m;
int n;
int ans[5];
int flag;
scanf("%d",&n);
for(i=0;i<3;i++)
for(j=0;j<3;j++)
for(k=0;k<3;k++)
for(l=0;l<3;l++)
for(m=0;m<3;m++)
{
if(a[i]+b[j]+c[k]+d[l]+e[m]==n)
{
ans[0]=e[m];
ans[1]=d[l];
ans[2]=c[k];
ans[3]=b[j];
ans[4]=a[i];
}
}
for(i=0;i<5;i++)
{
if(ans[i]!=0)
{
flag=i;
break;
}
}
for(i=flag;i<5;i++)
{
if(i==flag)
printf("%d",ans[i]);
else if(ans[i]==0)
continue;
else if(ans[i]>0)
printf("+%d",ans[i]);
else if(ans[i]<0)
printf("%d",ans[i]);
}
return 0;
}
用天平称重时,我们希望用尽可能少的砝码组合称出尽可能多的重量。
如果只有5个砝码,重量分别是1,3,9,27,81。则它们可以组合称出1到121之间任意整数重量(砝码允许放在左右两个盘中)。
本题目要求编程实现:对用户给定的重量,给出砝码组合方案。
例如:
用户输入:
5
程序输出:
9-3-1
用户输入:
19
程序输出:
27-9+1
要求程序输出的组合总是大数在前小数在后。
可以假设用户的输入的数字符合范围1~121。
#include<stdio.h>
int main()
{
int a[3]={0,-1,1};
int b[3]={0,-3,3};
int c[3]={0,-9,9};
int d[3]={0,-27,27};
int e[3]={0,-81,81};
int i,j,k,l,m;
int n;
int ans[5];
int flag;
scanf("%d",&n);
for(i=0;i<3;i++)
for(j=0;j<3;j++)
for(k=0;k<3;k++)
for(l=0;l<3;l++)
for(m=0;m<3;m++)
{
if(a[i]+b[j]+c[k]+d[l]+e[m]==n)
{
ans[0]=e[m];
ans[1]=d[l];
ans[2]=c[k];
ans[3]=b[j];
ans[4]=a[i];
}
}
for(i=0;i<5;i++)
{
if(ans[i]!=0)
{
flag=i;
break;
}
}
for(i=flag;i<5;i++)
{
if(i==flag)
printf("%d",ans[i]);
else if(ans[i]==0)
continue;
else if(ans[i]>0)
printf("+%d",ans[i]);
else if(ans[i]<0)
printf("%d",ans[i]);
}
return 0;
}
相关文章推荐
- 砝码称重问题
- 蓝桥杯——说好的进阶之砝码称重(贪心算法)
- NOI题库--砝码称重V2(多重背包2^n拆分)
- C程序设计的抽象思维-递归过程-砝码称重
- 51nod 1449 砝码称重【天平/进制】
- 51NOD 1449 砝码称重(贪心+进制思想)
- 砝码称重
- 砝码称重
- luoguP1441 【砝码称重】
- 砝码称重问题求解:动态规划与母函数方法
- 【算法题】天平砝码称重
- 蓝桥杯 砝码称重 递归 解题报告
- NOI题库--砝码称重V2(多重背包2^n拆分)
- 大题---砝码称重(贪心算法)
- 2144 砝码称重 2
- 2144 砝码称重 2 用map离散化hasi+二分搜索
- P2347 砝码称重
- 51nod-1449-砝码称重
- 动态规划---砝码称重问题
- 1449 砝码称重 题目来源: CodeForces