gpt4 book ai didi

java - 从不超过 8 位的数字中找到第 n 位(从左开始)

转载 作者:行者123 更新时间:2023-12-04 15:57:08 26 4
gpt4 key购买 nike

谁能告诉我如何检索整数的第 n 位,而不将整数视为字符串。只是纯粹使用 for 或 while 循环,从左边开始。

所以例如如果整数是2345,

当我进入位置 1 时;它应该返回 2,
位置 2 应该返回 3,以此类推。

我真的不知道如何解决这个问题。请帮忙。谢谢

我在下面做了一些代码,但我知道这是错误的。

import java.util.*;
class FindAnyDigit {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter a positive integer: ");
int integer = sc.nextInt();
System.out.println("Enter the position where you wish to retrieve the digit: ");
int position = sc.nextInt();
int multiple = 1;
int digit = 1;

for (int i = 1; i <= position; i++) {
multiple = multiple * 10;
while (integer > multiple) {
digit = integer % 10;
integer = integer / 10;
}
}
System.out.println("The digit at " + position +
" position is " + digit);
}
}

最佳答案

表达这个问题的一种方法是,给定数字左侧侧的从1开始的索引,我们希望将数字除以10,该数字的长度减去索引的次数。然后,只需返回剩余输入的 mod 10 值。

public static int getDigit(int input, int pos) {
int length = (int) (Math.log10(input) + 1); // number of digits in input
for (int i=0; i < length-pos; ++i) {
input = input / 10; // put target digit in tens place
}

return input % 10;
}

public static void main(String args[]) {
int input = 2345;
System.out.println(getDigit(input, 1)); // 2
System.out.println(getDigit(input, 2)); // 3
System.out.println(getDigit(input, 3)); // 4
System.out.println(getDigit(input, 4)); // 5
}

关于java - 从不超过 8 位的数字中找到第 n 位(从左开始),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68223374/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com