念整數(中國大學MOOC)(C語言)(Java)
阿新 • • 發佈:2019-01-10
題目內容:
你的程式要讀入一個整數,範圍是[-100000,100000]。然後,用漢語拼音將這個整數的每一位輸出出來。
如輸入1234,則輸出:
yi er san si
一個整數,範圍是[-100000,100000]。
輸出格式:
表示這個整數的每一位數字的漢語拼音,每一位數字的拼音之間以空格分隔,末尾沒有空格。
輸入樣例:
-30
輸出樣例:
你的程式要讀入一個整數,範圍是[-100000,100000]。然後,用漢語拼音將這個整數的每一位輸出出來。
如輸入1234,則輸出:
yi er san si
注意:每個字的拼音之間有一個空格,但是最後的字後面沒有空格。當遇到負數時,在輸出的開頭加上“fu”,如-2341輸出為: fu er san si yi
輸入格式:一個整數,範圍是[-100000,100000]。
輸出格式:
表示這個整數的每一位數字的漢語拼音,每一位數字的拼音之間以空格分隔,末尾沒有空格。
輸入樣例:
-30
輸出樣例:
fu san ling
#include<stdio.h> int main() { //定義字元陣列(C語言) char py[10][5]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"}; int num; scanf("%d",&num); if(num<0) { printf("fu "); num = -num; //化為自然數 } int mask = 1; //計算出最高位 int temp = num; while(temp > 9) { mask*=10; temp /=10; } while(num>9||mask>9) //防止10000這種情況,0直接結束了 { printf(py[num/mask]); printf(" "); num %= mask; //取剩下的位數 mask /= 10; } printf(py[num]); return 0; }
import java.util.Scanner; public class Main { public static void main(String[] args) { //定義字串陣列 String py[]=new String[] {"ling","yi","er","san","si","wu","liu","qi","ba","jiu"}; Scanner in = new Scanner(System.in); int num = in.nextInt(); if(num<0) { System.out.print("fu "); num = -num; } int mask = 1; int temp = num; while(temp>9) { mask *= 10; temp /= 10; } while(num>9||mask>9) { System.out.print(py[num/mask]+" "); num %= mask; mask /= 10; } System.out.print(py[num]); } }