任意输入一个正整数,输出他的每一位(正序输出),例如输入12345,程序输出1 2 3 4 5 
用while循环来做,求余数的计算方程式做出来,不用字符串!!!

解决方案 »

  1.   

    看到有的所谓面试,机试题大家都踊跃解答。唯独在下的一道已经搭好框架的简单AWT/Swing题无人问津。仅有的一个回答还是偏题的,ORZ……
    有兴趣的朋友请看:http://topic.csdn.net/u/20090524/20/fbad0353-4b5e-47ae-bca3-068264560994.html
      

  2.   


    public class A
    {
    public static void main (String[] args) 
        {
        
         int x1=12345;
         int x2=10;
         int x3=x1%x2;     while(x1!=0)
         {
         x1=x1/x2;
         System.out.println(x3);
         x3=x1%x2;
         }
        }
    }
      

  3.   

    Scanner sc=new Scanner(System.in);
    int a=sc.nextInt();
    int b=10;
    int[] c=new int[(a+"").length()];
    int k=0;
    while(a!=0){
    c[k]=a%b;
    a=a/b;
    k++;

    }
    for(int i=c.length-1;i>=0;i--){
    System.out.print(c[i]+"  ");
    }
      

  4.   

    应你要求的正序
    public class A 

      int x1=0; 
      int x2=10; 
      
      public void split(int x)
      {
         int x3=0;
         x1=x;
         if(x1!=0)
         {
          x3=x1%x2;
           x1=x1/x2;
           split(x1);
           System.out.println(x3);
         }
      }
      
      public static void main (String[] args) 
        { 
           new A().split(12345);
        } 
    }
      

  5.   

    public class Test5 {
        
        public static void main(String[] args) {        
            print(12345);
        }
        
        private static void print(int num) {
            if(num == 0) {
                return;
            }        
            print(num / 10);
            System.out.print((num % 10) + " ");
        }
    }
      

  6.   


    public static void intToChars(int data) 
    {
    if(data == 0)
    System.out.println(0);
    else
    {
    if(data < 0)
    System.out.print("- ");
    data = Math.abs(data);
    int dataLength = new Integer(data).toString().length();
    int base = (int)Math.pow(10, dataLength - 1);
    while(base > 0) 
    {
    System.out.print((data / base) + " ");
    data %= base;
    base /= 10;
    }
    System.out.println();
    }
    }这是我实现的方法,能够处理正负数等,还有一种方法就是在上面方法中加入stack就可以实现了,先压栈,后出栈就可以实现这个。
      

  7.   

    private static void intPrint(int a)
    {
    int i=0;
    int cs = 1;
    int count=0;//累加器
    //平判断输入的是几位数
    do
    {
    count++;
    cs*=10;
    }
    while(a/cs !=0);
    //输出
        while(i<count)
        {
         i++;
         int temp =(a/(cs/(int)Math.pow(10, (double)(i))));
         System.out.print(temp%10);
        }
    }
      

  8.   

    几位:正续是一,用while是二,也就是说lz不让用递归,递归的话会把逻辑变简单。
      

  9.   

    先用一个while确定除数
    x1=12345
    x2=10
    x3=x1/x2;
    while(x3 != 0)
    {
      x2 *= 10;
      x3 = x1 /x2;
    }然后再一个while来输出x3 = x1 % x2
    while(x1!= 0)
    {
      println(x3);
      x3 *= x2;
      x1 -= x3;
      x2 /= 10;
      x3 = x1 % x2;
    }没有用数组记录顺序,没有递归
      

  10.   

    import java.util.Scanner;
    public class shu
    {
     public static void main(String [] args)
     {
      Scanner cin=new Scanner(System.in);
      int a=cin.nextInt();
      String s = Integer.toString(a);
      int len=s.length();
      for(int i=0;i<len;i++)
      {
       System.out.print(s.substring(i,i+1)+" ");
      }
     }
    }