当前位置: 首页 > 知识库问答 >
问题:

一个java循环,它接受像32677这样的数字的输入,取出奇数并将它们相加,同时丢弃偶数

凤明朗
2023-03-14

我在编写一个程序时遇到问题,该程序接受像 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();
     }
        
     }

共有1个答案

杜霍英
2023-03-14

你可以这样做:

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数字之和