【发布时间】:2015-03-31 01:21:12
【问题描述】:
我正在尝试编写这个 java 程序,它要求用户输入一个数字并计算一个数字的位数并将每个数字乘以它的十进制值。例如我输入 546:程序应该说这个数字有 3 位数字,应该相乘:
5*100=500
4*10=40
1*6=6
到目前为止,这是我的代码:我在使用此代码时遇到的问题是它没有计算正确的位数。如果我输入 545,它说只有一位数字,当它进入除法时,它没有给出正确的答案。
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
System.out.print("Please enter a number: ");
int n = keyboard.nextInt();
int i;
for (i = 0; n > 0; i++) {
n /= 10;
for (i = 0; n > 0; i++) {
n /= 10;
System.out.println((n%100000) / 10000);
System.out.println((n%10000) / 1000);
System.out.println((n%1000) / 100);
System.out.println((n%100) / 10);
System.out.println(n%10);
}
System.out.println("Number of digits: " + i);
}
}
【问题讨论】:
-
你能看到当你调用 nextInt() 时它会如何读取 545 作为值为 545 的单个整数。你想找到输入的长度(可能读取为字符串),并且然后分离出来:如果有3个数字,第一个是百,第二个是十,第三个是个。
标签: java