[英]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.