题目分析:该题比较简单,对输入的整数各位数相加,对应的和的每一位以英文形式输出,注意10100该数值较大,超出int型和long long型的表示范围,考虑用字符串接收后在转换为int型,不要遗漏掉特殊情况,比如和为0的时候。
源代码如下:
#include<iostream> #include<string> using namespace std;
//输出转换函数,将数字转换为对应英文,注意端点对输出格式的要求 string trans(int a){ switch(a){ case 1: return "one"; case 2: return "two"; case 3: return "three"; case 4: return "four"; case 5: return "five"; case 6: return "six"; case 7: return "seven"; case 8: return "eight"; case 9: return "nine"; case 0: return "zero"; } } int main(){ string str1; cin>>str1; int sum=0; int buf[5],pos=0; for(int i=0;i<str1.length();i++){ sum=sum+str1[i]-‘0‘; } if(sum==0) buf[0]=0; while(sum!=0){ buf[pos++]=sum%10; sum=sum/10; } for(int i=pos-1;i>0;i--){ cout<<trans(buf[i])<<" "; } cout<<trans(buf[0]); return 0; }
原文:http://www.cnblogs.com/lazyboy-yan/p/3560978.html