当前位置:   article > 正文

【C语言题目】循环-数字_输入六个数,前三个是正整数后三个是前三个任意两个数的和

输入六个数,前三个是正整数后三个是前三个任意两个数的和

给出六个数字,每个数字范围为 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;
}```

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号