1005 Spell It Right 教你说英文

1. 题目

在这里插入图片描述

2. 分析

题意:给出一串数字字符,要你把每个数字累加,最后得到的总和用对应的英语数字输出来。

3. 解题过程

  1. 题意十分简单,考察代码能力,关键在于把字符和数字之间的转换搞懂,这题就很简单了。
  2. 上次在某篇文章有提过字符与数字的转换神器:sstream头文件下的stringstream数据流创建方式,不了解的可以再温故一下。
  3. 请看代码:
#include<string>
#include<iostream>
#include<sstream>
using namespace std;
int main()
{
	int sum = 0;
	string a;
	cin >> a;
	for(int i = 0; i < a.length(); i++)
	{
		string b = a.substr(i, 1);
		stringstream ss;
		int temp;
		ss << b;
		ss >> temp;
		sum += temp;
	}
	char A[11][10] = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};
	int B[100], cnt = 0;
	for(cnt = 0; sum != 0; cnt++)
	{
		B[cnt] = sum % 10;
		sum /= 10;
	}
	printf("%s", A[B[cnt-1]]);
	for(int i = cnt-2; i >= 0; i--)
	{
		printf(" %s", A[B[i]]);
	}
	return 0;
}

小结

  1. 最后要我们从左往右输出结果,但我们习惯从右往左得到每个数字,于是在输出的时候倒过来输出即可。

你的点赞是对我最大的支持,谢谢。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值