1082. Read Number in Chinese (25)

#include <iostream>
#include <string.h>

using namespace std;

int first = 1;

void setfirst()
{
	if(first == 1)
	{
		first = 0;
	}
	else
	{
		printf(" ");
	}
}

int main()
{
	char s[20];
	gets(s);

	int len = strlen(s);
	if(len == 1 && s[0] == '0')
	{
		printf("ling\n");
		return 0;
	}

	int begin = 0;
	if(s[0] == '-')
	{
		printf("Fu");
		begin = 1;
		first = 0;
	}

	int i, index, cur, zero, smallindex, wan = 0;
	char num[10][5] = {"", "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu"};
	char gaowei[4][5] = {"Qian", "", "Shi", "Bai"};

	for(i = begin; i < len; i++)
	{
		index = len - i;
		cur = s[i] - '0';

		if(index == 9)
		{
			setfirst();
			printf("%s Yi", num[cur]);
		}
		else if(cur > 0)
		{
			setfirst();

			if(zero == 1)
			{
				printf("ling ");
				zero = 0;
			}

			printf("%s", num[cur]);

			smallindex = index % 4;
			if(smallindex != 1)
			{
				printf(" %s", gaowei[smallindex]);
			}

			if(index >= 5 && index <= 8)
			{
				wan = 1;
			}
		}
		else
		{
			zero = 1;
		}

		if(wan == 1 && index == 5)
		{
			printf(" Wan");
		}
	}

	printf("\n");

	system("pause");
	return 0;
}

 

posted on 2025-11-23 17:18  王景迁  阅读(0)  评论(0)    收藏  举报

导航