Java,程序假设确定奇数的整数
我 100% 是 Java 新手。不能使用字符串或“中断”或数组来解决问题。任何反馈都很棒:)
路线图是:
-
根据用户输入命名数字。
-
声明并初始化一个计数器变量为零。
-
使用模运算符将输入的最右边数字保存在变量中: rightMost = input % 10
-
更新 input = input/10 的值
-
确定最右边的数字是否为奇数。使用模运算符 % 进行可除性测试。
-
如果 rightMost 是奇数,则将计数器加 1。
-
如果 rightMost 是偶数,则什么都不做。
-
如果输入不为零,则转到步骤 3。
-
如果输入为零,则程序已到达最后一位,需要转到步骤 10。
-
显示结果。计数器将具有原始数字中奇数位数的值。
我的代码如下:(我可能还没有走多远,但我正在尝试)(我可能需要做一段时间或做 while 方法)(任何有 !, =< 作为列表的指南都会很感激)
import java.util.Scanner;
public class Labtwo
{
public static void main(String[] args)
{
System.out.print("Please enter an integer:");// program lets user know to input a number
// allow keyboard access for user
// likely in a while or do while method?
Scanner kbd = new Scanner(System.in); // allows user input labels it as kbd
int input = kbd.nextInt();// kbd new value is input as a integer
//int counter = 0;
int rightMosteven= 0;
int rightMostodd = 0;
while (input > 0){
int rightMost = (input % 10);
if(rightMost%2==0)
rightMosteven ++;
else
rightMostodd++;
input=input/10;
}
System.out.printf("Number of odd digits: "+ rightMostodd);
//System.out.printf("Number of even digits: "+ rightMosteven);
}
}
这是我更新的新代码,我只是不确定 == 是否被视为字符串,如果是,那么我的答案是 0,如“无法使用部分”所述
回答
此答案假设您要计算某个输入数字的奇数位数。事实上,使用模数是一种可行的方法。考虑这个版本:
Scanner sc = new Scanner(System.in);
int input = sc.nextInt();
int counter = 0;
while (input > 0) {
if (input % 2 != 0) {
++counter;
}
input /= 10;
}
以下是对以下示例输入会发生的情况的细分12345:
1234 => last digit even, counter = 0
divide input by 10
123 => last digit odd, counter = 1
divide input by 10
12 => last digit even, counter = 1
divide input by 10
1 => last digit odd, counter = 2
divide input by 10
0 => terminate while loop