我在编写一个程序时遇到问题,该程序接受像 32677 这样的数字输入,取出奇数并将它们相加。例如,取出位置 0 = 3 中的数字。3 除以 2 不相等。
存储 3 并添加它。检查位置 1 中的编号,即 2。2 除以 2 相等,不要存储它,丢弃它并检查下一个数字。
检查位置2的数字,即6,6相等,不要存储它,丢弃它并检查下一个数字。检查位置3的数字,即7。检查7是否相等,存储7并将其与奇数相加,即3。总数为10。
检查位置4的下一个和最后一个数字,即7。检查7是否相等。它是奇数,存储它并将其与奇数相加,即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);
我试图用java编写一个循环,它取一个3位数,并将这些数字相加在一起。例如,123等于6。我知道n%10会得到第一个数字3,然后n/10会得到23,然后可以再次是%10,得到第二个数字。然而,这对最后一个数字不起作用。我不知道怎么写循环。任何帮助都将不胜感激。
我是一个Java的新手,我有一个问题,我不能想出比较前一个输入的数字(int)和下一个连续,我需要编写一个程序,反复读取数字从用户的键盘。当用户连续两次键入相同的数字时,程序停止循环。 谢谢你的指导。 下面是程序的运行示例:5 13 21 5 4 5 5完成! 以下是我失败的努力:) 扫描器输入=新扫描器(System.in);system.out.println(“输入数字”);
我在while循环中遇到了这个问题: 这个while循环只接受一次输入,不会再次请求它,所以它会循环整个时间接受一次该输入。我在这里做错了什么,因为对我来说,这个诡计循环真的很奇怪? InputHandler类:
我有几个问题需要解决作业,有点卡住了。问题是编写一个程序,让用户输入一个奇数(检查它是否奇数),然后根据输入的大小打印一个颠倒的星形金字塔。 例如,如果你输入5,它会出现 因此,我的问题是双重的。 1)我如何检查它是偶数还是奇数?我试过,希望它可以做一些事情,互联网告诉我如果,但这不起作用。 2)如何更改每行中间的星号? 对于任何一个问题的帮助,我们都非常感激。
我想我可以做一个逐行和逐列的比较,但有没有更简单的方法?
我整晚都在做这个,但是什么也没做出来。我希望我的代码对用户输入的所有数字求和,计算用户输入数字的次数。然后计算平均值。然后找到最大值和最小值,很容易就对了。是的,如果我被允许使用数组,但这是为了复习,我讨厌while循环。 这是我的密码。 以下是输出结果: 请输入一个整数:3您的数字之和为:3.0输入的值数为:1 请输入一个整数:2数字之和为:5.0输入的数值个数为:2 请输入一个整数:1数字之和