[英]How to take input array of N elements without defining size in java
输入:在输入中,会有一个N元素的数组
Output:Output 将是其左右子数组之和的数字。
示例输入:2 3 5 20 5 3 2
Output:20
输入:5 10 20 122 30 12 9 36
Output:122
任何人都可以解释这个问题将如何解决,因为我正在应用逻辑,因为 output 将是数组的中间元素,但这是真正的逻辑。 此外,为了在运行时增加数组的大小,我们可以使用 ArrayList 但是任何人都可以建议代码如何声明它。 谢谢你。
您基本上需要找到等于其左右元素之和的元素。 下面的程序应该达到同样的效果。
public class Sample {
public static void main(String[] args) {
int arr[] = { 5, 10, 20, 122, 30, 12, 9, 36 };
for (int i = 0; i < arr.length; i++) {
int temp = arr[i];
int sum = 0;
if (i == 0) {
// first element simple sum the right elements
for (int j = i + 1; j < arr.length; j++) {
sum += arr[j];
}
} else {
// sum the right elements
for (int j = i + 1; j < arr.length; j++) {
sum += arr[j];
}
// sum the left elements
for (int j = i - 1; j >= 0; j--) {
sum += arr[j];
}
// check if sum of left and right elements equals element.
if (sum == arr[i]) {
System.out.println(arr[i]);
break;
}
}
}
}
}
我认为你必须只计算总和并从中减去数组中的每个数字,当从总和中减去第 i 个数字后再次给出第 i 个数字意味着这个数字等于所有其他左右子数组的总和
l=list(map(int,input().split(' ')))
x=sum(l)
y=0
for i in range(len(l)):
y=x-l[i]
if(y==l[i]):
print(l[i])
break;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.