[英]Calculate the sum of all two digits integers in an array
我想计算包含两位数的数组中所有整数的总和。 例如:
int[] arr1 = {1, 23, 4, 55};
int[] arr2 = {2, 5, -66, 23};
第一个数组的结果应该是23 + 55 = 78
,而第二个数组的结果应该是-66 + 23 = -43
。 我怎样才能做到这一点?
如果要对仅包含两位数字的元素求和,可以使用以下命令:
int[] arr = {1, 23, 4, 55};
int sum = 0;
for (int i : arr) {
if (Math.abs(i) > 9 && Math.abs(i) < 100) {
sum += i;
}
}
您可以使用元素的索引:
int[] arr1 = {1,23,4,55};
int[] arr2 = {2,5,-66,23};
int sum1 = arr1[1] + arr1[3];
int sum2 = arr2[2] + arr2[3];
要获取数组中两个数字的总和:
请记住,在调用数组以访问存储的值时,请使用该值在数组中的索引(或位置)——然后添加一个。 我们使用 indexOfValue + 1 的这个公式,因为大多数语言从第 0 个位置开始索引数组(尽管这并不总是正确的,例如,Fortran 索引其数组从 1 开始。因此“整数 anArray(50)”将创建一个数组存储 50 个 int 元素,从索引 1 开始到索引 50 结束)。 编程语言中这种结构设计的另一个结果是可以使用 sizeOfArray - 1 访问数组的最后一个值。
要澄清这些概念,请查看以下代码:
int[] a = {1,23,4,55};
int firstSum = a[1] + a[3]; // performs 23 + 55
int[] b = {2,5,-66,23};
int secondSum = b[2] + b[3]; // performs -66 + 23
int sumOfLastValues = a[a.length - 1] + b[b.length - 1];
我会给你一些我已经尝试过的代码:
int sum1 = 0, sum2 = 0;
int[] arr1 = {1, 23, 4, 55};
for(int i: arr1){
if(i/10 > 0 && i/100 == 0){
sum1 += i;
}
else if(i/-10 > 0 && i/-100 == 0){
sum1 -=i;
}
}
int[] arr2 = {2, 5, -66, 23};
for(int i: arr2){
if(i/10 > 0 && i/100 == 0){
sum2 += i;
}
else if(i/-10 > 0 && i/-100 == 0){
sum2 +=i;
}
}
System.out.println(sum1);
System.out.println(sum2);
结果是:
78
-43
您可以转换为字符串并检查。
for(int num : v) {
// check for size
string str = to_string(num);
if( (str.size() == 2) || (str.size()==3 && (str[0]=='+' || str[0]=='-') ) )
sum += num;
}
cout<<sum;
截图代码:
public static int getSumOfTwoDigits(int[] numbers) {
int sum = 0;
for (int number : numbers) {
int divident = (number < 0 ? number * -1 : number) / 10;
if (divident > 0 && divident < 10) {
sum += number;
}
}
return sum;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.