java输出数字的每位

来源:百度知道 编辑:UC知道 时间:2024/06/11 04:56:51
编写一个程序,把变量n的初始值设置为5814,然后利用除法运算和取余运算把变量n的每一位数字都提取出来,并打印。输出结果为:
n = 5814
数字的每一位是:5,8,1,4

提示:使用n/1000提取n的千位数字,利用n%1000获得除千位外的数;
我做的老麻烦了
package homework;

import java.util.Scanner;

public class Exercise03_2 {
private int i;
public Exercise03_2(){
Scanner scanner=new Scanner(System.in);
i=scanner.nextInt();
}
public int exp(int k){
int m = 1;
for(int i=k;i>0;i--){
m*=10;
}
return m;
}
public void quwei(){
// this.i=i;
int j=0;
for(int k=4;k>0;k--){
j=i/exp(k);
i=i%1000;
System.out.println("第"+k+"位:"+j);
}
}
public static void main(String[] args){
Exercise03_2 ee=new Exercise03_2();
ee.quwei();
}
}
还有啊 我以上的代码为什么在Myeclipse中编写完后无编译错误,可是运行没有看见反应呢???
谢谢各位大虾。

1.你的程序在运行后是有反应的,它在等待输入,之所以你感觉没有反应,可能是由于你没有输出一个提示信息以提示用户程序正在等待输入,可以在构造方法中加的 i=scanner.nextInt();之前加上句System.out.print("请输入一个整数");

2.你的程序算法有问题,下面提供一个测试正常的程序,数字的输入部分也可以改为你所用的Scanner对象方式。

/***************************************************/
package javabaiduanswer;

import javax.swing.JOptionPane;

public class Main
{
static int len=0;
public static void main(String args[])
{
int i=Integer.parseInt(JOptionPane.showInputDialog("请输入一个整数"));
reverse(i);

}

static void reverse(int a)
{
if (a>=10) reverse(a/10);
System.out.println("第"+(++len)+"位:"+a%10);

}

}

Scanner scanner=new Scanner(System.in);
i=scanner.nextInt();
将这两句放在main方法里好了....

public class Test {
public static void main(String[] args) {
int value = 2345;