给出六个数字,每个数字范围为 0 ~ 9,现在你可以将其中任意个数字换成其他任意数字,范围还是 0 ~ 9,问最少需要改变多少个数字,使得前三个数字之和等于后三个数字之和。
输入格式:
第一行输入 6 个整数,每个整数范围为 0 ~ 9 。
输出格式:
最少需要改变的数字的个数。
输入样例:
在这里给出一组输入。例如:
1 2 3 4 5 6
输出样例:
在这里给出相应的输出。例如:
2
输入样例中,可将 4 和 5 改成 0 或者将 5 改成 2 ,6 改成 0。
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
#include<stdio.h>
#include<math.h>
int main()
{
int a[6];
int i;
int iszero=0;
int isnine=0;
int sum1=0,sum2=0;
for(i=0;i<6;i++)
{
scanf("%d",&a[i]);
if(a[i]==0)
{
iszero++;
}
if(a[i]==9)
{
isnine++;
}
if(i<=2)
{
sum1+=a[i];
}
if(i>2)
{
sum2+=a[i];
}
}
if(sum1==sum2)
{
printf("0");
}
else if(abs(sum1-sum2)<9)
{
printf("1");
}
else if(abs(sum1-sum2)==9 && (isnine>0||iszero>0))
{
printf("1");
}
else if(abs(sum1-sum2)<18)
{
printf("2");
}
else if(abs(sum1-sum2)==18 && (iszero>1||isnine>1))
{
printf("2");
}
else if(abs(sum1-sum2)>=18)
{
printf("3");
}
return 0;
}```