0%

PAT-1005 Spell It Right

1005 Spell It Right

题意

给定一个数,求解这个数各个数位相加的结果,结果输出英文

思路

数位求和相加

源码

line_number: true
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <iostream>
#include <stdio.h>
#include <map>
#include <vector>
#include <queue>
#include <string>
#include <cstring>
using namespace std;
string szIntergerToEnglish[10] ={"zero","one","two","three","four","five","six","seven","eight","nine"};
int main()
{
char szNum[101];
scanf("%s", szNum);
int iSum = 0;
for(int i = 0 ; i < strlen(szNum); i++)
{
iSum += szNum[i] - '0';
}
int szPrintNum[101];
int iSize = 0;
while(iSum != 0)
{
szPrintNum[iSize] = iSum % 10;
iSum = iSum / 10;
iSize++;
}
if(iSize == 0)
{
cout<<szIntergerToEnglish[0]<<endl;
}
else
{
cout<< szIntergerToEnglish[szPrintNum[iSize - 1]];
for(int i = iSize - 2; i >= 0; i--)
{
cout<< " " << szIntergerToEnglish[szPrintNum[i]];
}
cout<<endl;

}
return 0;
}