天天看點

藍橋杯題目 1009: [程式設計入門]數字的處理與判斷

藍橋杯題目 1009: [程式設計入門]數字的處理與判斷

題目描述

給出一個不多于5位的整數,要求 1、求出它是幾位數 2、分别輸出每一位數字 3、按逆序輸出各位數字,例如原數為321,應輸出123

輸入

一個不大于5位的數字

輸出

三行 第一行 位數 第二行 用空格分開的每個數字,注意最後一個數字後沒有空格 第三行 按逆序輸出這個數

樣例輸入

12345
           

樣例輸出

5
1 2 3 4 5
54321
           

參考代碼:

import java.util.Scanner;
public class Test7 {
    public static void main(String[] args){
        Scanner sc =new Scanner(System.in);
        int a=sc.nextInt();  //a為輸入的數字
        int[] b=new int[5];    //建立一個大小為5的數組
        int c=0,d,e;         //定義c的初始值,将a的值指派給d備用
        d=a;
        while(d>0){      //while循環找出輸入的a是幾位數并指派給c
            d=d/10;
            c++;
        }
        System.out.println(c);  //輸出c(輸入的數字是幾位數)
        for(int i=0;i<c;i++){  //利用for循環
            int f=1;           //定義一個f讓每一遍的f都重新變為1,為下面的for循環提供便利
            for(int j=0;j<c-i-1;j++){     //利用for循環計算出正好除以的10的幾次方
                f=10*f;                   //例如當a=12345時就除以10的4次方
            }
            e=a/f;                //将e變為a/f
            a=a%f;                //将a進行除餘,例如a=12345第一次除餘後變為2345
            b[i]=e;               //将e指派給b數組
            if(i<c-1){
                System.out.print(b[i]+" ");  //之前的輸入後面都加一個空格
            }
            else {
                System.out.println(b[i]);   //最後的輸入不加空格
            }                                //強調一點“print”輸出時不會換行“println”輸出時會換行
        }
        for(int v=0;v<b.length;v++){
            if(b[b.length-v-1]>0){
                System.out.print(b[b.length-v-1]);   //倒着輸出數組
            }
        }
    }
}