Neep帮助编写一个乘以数字的程序

时间:2015-03-30 01:00:13

标签: java java.util.scanner

我需要帮助编写一个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);
  }
}

}

2 个答案:

答案 0 :(得分:0)

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

  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

答案 1 :(得分:0)

不是使用大分区,而是可以使用mod和division来获取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);
}