给一个数组, 19个整数, 范围1-20, {1,2,9,11,3,5,7,4,6,8,10,13,14,15,17,16,19,18,20}. 请编程找出该数组缺少1-20中的哪个数
传统的做法:
public static void main(String[] args)
{
// 给一个数组, 19个整数, 范围1-20,
// {1,2,9,11,3,5,7,4,6,8,10,13,14,15,17,16,19,18,20}.
// 请编程找出该数组缺少1-20中的哪个数
int[] a = { 1, 2, 9, 11, 3, 5, 7, 4, 6, 8, 10, 13, 14, 15, 17, 16, 19, 18, 20 };
for (int i = 1; i <= 20; i++)
{
boolean flag = false;
for (int j = 0; j < 19; j++)
{
//如果在a数组中找到了和i相等的值 则把flag赋值为true, 同时break
if (i == a[j])
{
flag = true;
break;
}
}
if (!flag)
{
System.out.println("缺少" + i);
}
}
}
更高级的做法:
public static void main(String[] args)
{
// 给一个数组, 19个整数, 范围1-20,
// {1,2,9,11,3,5,7,4,6,8,10,13,14,15,17,16,19,18,20}.
// 请编程找出该数组缺少1-20中的哪个数
int[] a = { 1, 2, 9, 11, 3, 5, 7, 4, 6, 8, 10, 13, 14, 15, 17, 16, 19, 18, 20 };
int sumArray = 0;
for(int m = 0; m < 19; m++)
{
sumArray += a[m];
}
int sumNum = (1 + 20) * 20 / 2;
System.out.println("缺少" + (sumNum - sumArray));
}

浙公网安备 33010602011771号