PAT 1005 Spell It Right cpp及c语言写法
cpp代码
#include<iostream>
using namespace std;
int main(){
string x;
cin>>x;
int s=0;
for(char c: x) s+=c-'0';
string str=to_string(s);
char word[10][10]={"zero","one","two","three","four","five","six","seven","eight","nine"};
for(int i=0;i<str.size();i++) {
if(i) cout<<' ';
cout<<word[str[i]-'0'];
}
return 0;
}
c语言代码
void printEn(int val,int size){
if (val / (size==1?1:(int)pow(10,(size-1))) == 0) { printf("zero"); }
else if (val / (size==1?1:(int)pow(10,(size-1))) == 1) { printf("one"); }
else if (val / (size==1?1:(int)pow(10,(size-1))) == 2) { printf("two"); }
else if (val / (size==1?1:(int)pow(10,(size-1))) == 3) { printf("three"); }
else if (val / (size==1?1:(int)pow(10,(size-1))) == 4) { printf("four"); }
else if (val / (size==1?1:(int)pow(10,(size-1))) == 5) { printf("five"); }
else if (val / (size==1?1:(int)pow(10,(size-1))) == 6) { printf("six"); }
else if (val / (size==1?1:(int)pow(10,(size-1))) == 7) { printf("seven"); }
else if (val / (size==1?1:(int)pow(10,(size-1))) == 8) { printf("eight"); }
else if (val / (size==1?1:(int)pow(10,(size-1))) == 9) { printf("nine"); }
}
int main() {
long num = 0, val = 0;
while ((num = getchar()) != '\n') {
val += num - 48;
}
if(val==0) {printf("zero");return 0;}
int size = (int) log10(val)+1;
while (size!=0) {
printEn(val,size);
val=val%(size==1?1:((size-1) * 10));
size--;
if(size!=0)printf(" ");
}
return 0;
}