gpt4 book ai didi

java - 如何在不使用控制语句或循环的情况下将整数中的所有数字相乘(000 和 1000 之间除外)?

转载 作者:搜寻专家 更新时间:2023-11-01 03:15:37 25 4
gpt4 key购买 nike

我正在尝试编写一个程序,它可以仅使用 Java 中的数学表达式将 0 到 1000 之间的数字的所有数字相乘。只要用户输入 3 位数字,我的程序就可以正常工作,但如果他们输入小于 100 的数字,则结果为 0。

我曾尝试使用“%10”获取输入的最后一位数字并使用“/10”删除最后一位数字,但没有控制语句来检测输入是否已减少为零,程序最终乘以0 当 2 位数字已减少为零时,给出不正确的结果。

public class MultiplyDigits {
public static void main(String[] args){
java.util.Scanner input = new java.util.Scanner(System.in);
System.out.print("Enter a number between 0 and 1000: ");
int number = input.nextInt();
int product = 1;
product*=number%10;
number/=10;
product*=number%10;
number/=10;
product*=number%10;
System.out.println(product);
}
}

输入 55 的结果应该是 25,但我的程序是 5 x 5 x 0 = 0

输入 999 结果为 729,这是正确的。 9 x 9 x 9 = 729

再说明一下,这是新手教科书第2章的一道题。作者没有涉及选择语句、循环、编写我们自己的方法或类,或任何比基本编程更高级的东西,所以这意味着没有这些也是可行的。本书涵盖了在 Java 内置的类中调用方法,尽管作者只提到了 Math 和 System 类中的方法。例如Math.max()、Math.min()、Math.pow()、System.currentTimeMillis();

最佳答案

这个变体怎么样。要找到第一个数字,您可以首先将输入的数字减 100,然后加 1 以避免乘法时出现 0。并且,作为推荐的 NVioli,第二个数字应该是相同的更新,以便有可能输入小于 10 的数字。因此,最终的变体是:

int number = input.nextInt();

int t1 = 1 + (number-100) / 100;
int t2 = (1 + (number-10) / 10) % 10; \\By NVioli
int t3 = number % 10;

int product = t1 * t2 * t3;

System.out.println(product);

关于java - 如何在不使用控制语句或循环的情况下将整数中的所有数字相乘(000 和 1000 之间除外)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54559891/

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