1. 程式人生 > >zzuli OJ 1061: 順序輸出各位數字

zzuli OJ 1061: 順序輸出各位數字

題目描述
輸入一個不大於10的9次方的正整數,從高位開始逐位分割並輸出各位數字。

輸入
輸入一個正整數n,n是int型資料

輸出
依次輸出各位上的數字,每一個數字後面有一個空格,輸出佔一行。例如,輸入 12345 ,輸出 1 2 3 4 5

樣例輸入
12345
樣例輸出
1 2 3 4 5
提示
注意整數運算避免使用double型別的函式如pow()。
本題可先用一個迴圈計算出最高位的位權h,然後再用一個迴圈,迴圈內容為: 輸出最高位(n/h)、扔掉最高位(n = n%h)、降低最高位位權(h = h/10),直到位權h為0

#include<stdio.h>
int main()
{
    int n, temp, base;
    scanf("%d", &n);
    temp = n;
    base = 1;
    while( temp > 9) //得到最高位位權base
    {
        temp /= 10; //扔掉各位
        base *= 10; //位權增加
    }
    while(base > 0) 
    {
        printf("%d ", n/base); //輸出最高位
        n %= base;    //扔掉最高位
        base /= 10;    //位權降低
    }
    printf("\n");
    return 0;
}