java - 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
推荐阅读
- c# - 注册类,将其从 android 项目传递给 App 类
- macos - 命令行工具已经安装,使用“软件更新”安装更新?
- javascript - 如何在 React 中使用 forwardRef()?
- node.js - JSON 格式的 API 到 Postgres 表
- spring-boot - 如何在 Spring-Boot 中调试自定义异常消息
- r - 在 R 中,希望从某些行中删除重复项,并在其他行中合并行
- django - 如何将第二个(不同的)模型实例发送到模板
- python - 如何在 PySpark 函数中引用定义的常量?
- r - 将数据拆分成块,但之间有距离
- python - pytorch 关于张量形状的问题。以及如何重塑张量