gpt4 book ai didi

java - 数字总和程序错误

转载 作者:行者123 更新时间:2023-12-01 13:32:59 26 4
gpt4 key购买 nike

我一直在编写一个程序,用于获取整数 x 并找到其数字之和乘以 x 等于该数字的任何数字。我的代码适用于数字 2、3 和 4,但除此之外,无论我在做什么,都会返回各种错误。任何帮助将不胜感激。

我的代码:

package SumOfTheDigits;

public class Test
{
public static void main(String[] args) throws java.lang.Exception
{
int a = 3;
int x = 1;
int solutions = (9 - ((((10 * x) - (a * x))/(a - 1)) % 9))/(((10 * x) -
(a * x))/(a - 1));

for(int z = 1; z < solutions + 2; z++)
{
if((z * 10) + ((10 * z) - (a * z))/(a - 1) == a * (z + ((10 * z) -
(a * z))/(a - 1)))
{
System.out.println(z + "" + ((10 * z) - (a * z))/(a - 1));
}
}
}
}

最佳答案

您会遇到 /by Zero 异常,因为您的数字存储为整数,这意味着当您通常获得小数值 < 1 时,您实际上会获得 0。以您的代码为例

int a = 15;
int x = 1;
// with the bottom half of your equation
int solutions = ....other math.../(((10 * x) - (a * x))/(a - 1))

// (((10 * 1) - (15 * 1))/(15 - 1)) = (-5/14) - > converted to integer = 0

所以..

int solutions = ....other math.../0

并且抛出一个错误。您应该做的是将所有 int 转换为 double ,以便正确计算方程。

double a = 10;
double x = 1;
double solutions = ....;

还要对操作顺序有一定的信心,并删除一些括号:),太多了,看着很头疼

double temp = (10*x - a*x)/(a - 1);
double solutions = (9 - (temp % 9))/temp;

关于java - 数字总和程序错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21445893/

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