1. 程式人生 > >念整數(中國大學MOOC)(C語言)(Java)

念整數(中國大學MOOC)(C語言)(Java)

題目內容:
你的程式要讀入一個整數,範圍是[-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]);
		
			
	}
}