我在编写一个程序时遇到了问题,该程序需要输入32677之类的数字,取出奇数并将它们相加。因为位置0中的数字是3。因为3不能被2整除,所以存储3并将其添加到和中。检查位置1中的数字,即2。2可以被2整除,所以不要存储它,丢弃它并检查下一个数字。
检查位置2的数字,即6,6可被2整除,因此将其丢弃并检查下一个数字。检查位置3的数字,即7。检查7是否能被2整除,存储7并将其与奇数相加,即3。总数是10。
检查位置 4 中的下一个和最后一个数字,即 7。检查 7 是否可被 2 整除。它不是这样存储它并将其与其他奇数数字相加,即3 7 7 = 17。
当我运行程序时,我只得到7。我应该得到17作为答案。
public static void main(String[] args) {
// TODO Auto-generated method stub
//Scanner in = new Scanner(System.in);
System.out.println("Input an a number: ");
//int userInput = in.nextInt();
int oddSum = 0;
int storedNum = 32677;
int inputLength = 5;
for (int inputPosition = 0; inputPosition < inputLength; inputPosition ++) {
for (int i = 0; i < inputLength; i++ ) {
storedNum = storedNum % 10;
if (storedNum % 2 == 1) {
int oddNum = storedNum;
oddSum = oddNum + oddSum;
storedNum = storedNum / 10;
}
else {
storedNum = storedNum / 10;
}
}
}
System.out.printf("%d", oddSum);
//scanner.close();
}
}
你可以通过这种方式做到这一点:
int num = 32677;
int sum = 0;
while(num > 0) {
int lastDigit = num % 10;
if (lastDigit % 2 != 0)
sum += lastDigit;
num = num / 10;
}
System.out.print(sum);
问题内容: 我有一个String变量(基本上是一个英语句子,带有未指定数量的数字),我想将所有数字提取到一个整数数组中。我想知道是否有使用正则表达式的快速解决方案? 我使用了Sean的解决方案,并对其进行了一些更改: 问题答案: …打印和。 -?匹配前导负号-可选。 d匹配一个数字,但是我们需要像Java String中那样编写。因此, d +匹配1个或多个数字。
我想求两个整数之间的偶数奇偶数的个数。以下是我目前所写的内容: 这个很管用。但是,和这两个整数之间的差值可能高达,这意味着类似这样的解决方案是行不通的。是否有一个更有效的,即解决方案来解决这个问题?
我被要求编写一个程序,用Switch-Case语句的自由落体方法,获取1-10之间的5个数字,并找出其中有多少是偶数,有多少是奇数。我已经编写了代码,并且在本地范围内声明了变量,其中存在相同的开关情况,所以我认为这不是块范围的问题。如果数字是奇数(1,3,5,7,9),则奇数计数器变量(oc)递增。偶数也会发生同样的情况。如果数字不在范围内,则打印“无效输入”(它继续,不会中断程序)。 问题是,它
给定一个整数,如何有效地找到范围内可被7整除的数的计数(它们的反向也应可被7整除): null 对于,请回答: [从0到99的所有可被7整除的数(它们的反向也可整除)] null null
假设第一个输入行是这样的: 第二输入线为: 输出应为: 我试着把所有的数字放在一个单独的数组里。但我不知道如何找到所说的数组的乘积。输出大小应该是第一个数的大小+第二个数的大小。因此,如果产品大小较小,它应该有一个前导0。
预期的输出是值的排序数组:。