PAT 甲级测试题目 -- 1005 Spell It Right

题目链接

题目描述:

  给定一个非零的整数 N,加个它的每一位N (N ≤ 10100​​),用英文单词读出加和的结果。

测试用例

输入:
12345
输出:
one five

分析

  题目很简单,由于 N ≤ 10100 所以用字符串接收输入,加和字符串中的每一位,然后用英文单词输出。坑点在 0 上,其他都没什么难的地方

实现

#include<iostream>
#include<string>
using namespace std;

int StrToNum(string NumText) {
	int add = 0;
	for (int i = 0; i < NumText.length(); i++) 
		add += (int)(NumText[i] - '0');
	return add;
}
void OutputWordByNum(int number) {
	string EgWords[10] = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" };
	string temp = "";
	string now = "";
	int flag = 0;
	if (number == 0)
		cout << EgWords[number];
	else {
		while (number) {
			flag++;
			temp = EgWords[number % 10];
			if (flag == 1)
				now = temp + now;
			else
				now = temp + " " + now;
			number = number / 10;
		}
		cout << now;
	}
}
int main() {
	string enter;
	string result[10];
	cin >> enter;	
	OutputWordByNum(StrToNum(enter));	
	return 0;
}

希望能帮助到你!

posted @ 2019-01-15 16:48  Intro1997  阅读(291)  评论(0编辑  收藏  举报