gpt4 book ai didi

java - 整数模字符(也是一个数字)给出不正确的结果

转载 作者:太空宇宙 更新时间:2023-11-04 10:21:08 27 4
gpt4 key购买 nike

我尝试搜索一个可能已经有答案但找不到答案的现有问题。对于给定的整数 n,我尝试将模运算符应用为:

n%(each digit of n)

我将给定的整数“n”转换为字符串,然后使用 str.charAt() 方法获取给定数字的每个数字。

static int findDigits(int n) {
String num = String.valueOf(n);
int count = 0;
for(int i=0; i<num.length(); i++)
{
if(n % num.charAt(i) == 0)
{

count++;
}
}
return count;
}

但是,n % num.charAt(i) 没有返回正确的结果。例如,如果 n 为 12:当 i=0 时,12%1 返回 12 而不是 0。如果 n 为 1012:当 i=0 时,1012%1 返回 32 而不是 0。

将 num.charAt(i) 转换为整数,即 Integer.valueOf(num.charAt(i)) 也不起作用,没有效果:

我发现使用 Character.getNumericValue() 方法给出了正确的结果。为什么?这有效:

static int findDigits(int n) {
String num = String.valueOf(n);
int count = 0;
for(int i=0; i<num.length(); i++)
{
if(n % Character.getNumericValue(num.charAt(i)) == 0)
{
count++;
}
}
return count;
}

最佳答案

您可以尝试如下:

        if (n % Integer.valueOf(String.valueOf(num.charAt(i))) == 0) {
count++;
}

如您所见Integer.valueOf(String s)

Returns an Integer object holding the value of the specified String.

当您传递字符时。

关于java - 整数模字符(也是一个数字)给出不正确的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51165130/

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