【问题标题】:Neep help writing a program that multiplies digits求助写一个数字相乘的程序
【发布时间】:2015-06-02 22:01:51
【问题描述】:

我需要帮助编写一个 Java 程序,该程序提示用户输入一个数字而不是添加每个数字而不使用 ifwhile 语句。

例如:我输入987。程序应该说这个数字有 3 位数字,并将每个数字乘以它的小数位。

9*100
8*10
7*1

到目前为止,这是我的代码,我认为我在正确的道路上,但不知道从这里去哪里。

public static void main(String[] args) {
   Scanner keyboard = new Scanner(System.in);
   System.out.print("Please enter number");
   int x;

  x= keyboard.nextInt();
  for(int i=1;i<=20;i++){
      System.out.print(x/1);
      System.out.print(x/10);
      System.out.print(x/100);
      System.out.print(x/1000);
      System.out.print(x/10000);
      System.out.print(x/100000);
  }
}

}

【问题讨论】:

  • 获取输入为String,这给出了长度的概念。使用String#toCharArrayString#charAt 获取String 中的下一个字符,将其转换为int,对其进行乘法运算
  • Char还没学过,所以不能用。
  • 这里的挑战似乎不是实际执行请求的操作,而是在问题的任意限制下要求执行的操作,例如“否 if 或 while声明”。如果您对每一次提供帮助的回应都是“哦,我们不能使用它,因为我们还没有学会它”,那么人们很快就会变得不感兴趣。
  • 这不是我的本意,我被这个问题困扰了好几个小时,需要帮助。
  • 你已经学会了Stringintchar只是另一个像int这样的原始类型

标签: java java.util.scanner


【解决方案1】:

您可以这样做来提取每个数字:

  System.out.println((x%100000) / 10000);
  System.out.println((x%10000) / 1000);
  System.out.println((x%1000) / 100);
  System.out.println((x%100) / 10);
  System.out.println(x%10);

所以如果你输入 567,输出会是:

0
0
5
6
7

你可以从那里做一个int total,然后将每个相乘并加到总数中。

要获取 int 大小,请查看此链接:

https://stackoverflow.com/a/22649027/3735292

【讨论】:

  • 感谢这有帮助,但我还需要这样做,所以如果我输入 567,程序应该说这个数字有 3 位。
  • 看看这个。它不使用 if 或 while 循环:stackoverflow.com/a/25467011/3735292
  • 感谢您的帮助,以及如何删除 0。所以如果我输入 567 它应该分别为 5,6,7 并且不应该有 0。
  • 计算输入中的位数:因此 567 将是 3。将该值 (3) 保存到变量中。在发生 x%10 事情的 for 循环中,将 i
  • 没问题!祝你好运:)
【解决方案2】:

您可以使用 mod 和除法而不是使用大除法来在 for 循环中取出每个数字,如下所示:

public static void main(String[] args) {
   Scanner keyboard = new Scanner(System.in);
   System.out.print("Please enter number");
   int x;    
   int a=0, result=1;
       for(int i = keyboard.nextInt(); i!=0; a=i%10, i/=10)
            result*=a;
   System.out.println(result);
}

【讨论】:

  • 根据问题,这应该是“不使用 if [or] while 语句”。
猜你喜欢
  • 1970-01-01
  • 2023-02-10
  • 1970-01-01
  • 2014-11-09
  • 2014-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多