gpt4 book ai didi

java - java中如何计算一个数字的数字之和?

转载 作者:行者123 更新时间:2023-12-02 05:07:20 24 4
gpt4 key购买 nike

我有一个小函数,要求用户输入一个正数,然后给他倒数并计算其数字之和。

代码的第一部分工作正常,但数字之和返回零如何解决这个问题?

我知道必须要求用户输入一次而不是两次,所以如何修复此功能,因为它不接受用户输入。

代码:

package exam3Programing1_20_12_2010;

import java.util.Arrays;
import java.util.Scanner;

public class Question3 {

private int num;
private int sum;
private int reverse;


public int fill() {

System.out.println("enter the number");
Scanner in = new Scanner(System.in);
num = in.nextInt();

if (num < 0) {
System.out.println("enter a positive number");
}
while (num != 0) {
reverse = reverse * 10;
reverse = reverse + num % 10;
num = num / 10;
}
System.out.println("your reverse number is : " + reverse);
return num;
}

public void sumDigits() {

while (num != 0) {
sum = sum + num % 10;
num = num / 10;
}

System.out.println("sum of digits: " + sum);
}

public static void main(String[] args) {

Question3 q3 = new Question3();
q3.fill();
q3.sumDigits();
}
}

输出

enter the number
1234
your reverse number is : 4321
sum of digits: 0

更新后的代码

package exam3Programing1_20_12_2010;

import java.util.Arrays;
import java.util.Scanner;

public class Question3 {

private int num;
private int sum;
private int reverse;


public int fill() {

int myNumber = num;
System.out.println("enter the number");
Scanner in = new Scanner(System.in);
myNumber = in.nextInt();

if (myNumber < 0) {
System.out.println("enter a positive number");
}
while (myNumber != 0) {
reverse = reverse * 10;
reverse = reverse + myNumber % 10;
myNumber = myNumber / 10;
}
System.out.println("your reverse number is : " + reverse);
return num;
}

public void sumDigits() {

while (num != 0) {
sum = sum + num % 10;
num = num / 10;
}

System.out.println("sum of digits: " + sum);
}

public static void main(String[] args) {

Question3 q3 = new Question3();
q3.fill();
q3.sumDigits();
}
}

更新输出

enter the number
1234
your reverse number is : 4321
sum of digits: 0

最佳答案

这是因为您在反向方法和求和方法中共享相同的数字,并且当您第一次调用反向方法时,您会继续将数字除以0,因此当您使用求和方法时,您的数字是1,因此总和是0。

为了纠正这个问题,我建议您定义名为 mynumber 的局部变量,如下所示:

public int fill() {

System.out.println("enter the number");
Scanner in = new Scanner(System.in);
num = in.nextInt();

if (num < 0) {
System.out.println("enter a positive number");
}
int myNumber = num;
while (myNumber != 0) {
reverse = reverse * 10;
reverse = reverse + myNumber % 10;
myNumber = myNumber / 10;
}
System.out.println("your reverse number is : " + reverse);
return num;
}

OUTPUT:
enter the number
1234
your reverse number is : 4321
sum of digits: 10

关于java - java中如何计算一个数字的数字之和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27665802/

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