pat甲级1005 Spell It Right
题意:给你一个10^100位的数字,求出其各位数字的和,再用对应的英文输出每一位数字。
分析:简单语法题,10^100即使long long int都会爆,虽然__int128不会,但是似乎pat的评测机不支持这个....用char型数组或者string输入皆可。
1 #include2 #include 3 #include 4 using namespace std; 5 char word[10][10]={"zero","one","two","three","four","five","six","seven","eight","nine"}; 6 char s[105];//10^100也就是说最多也就101位吧,开105绰绰有余 7 int dig[105]; 8 int main() 9 { 10 while(cin>>s) 11 { 12 int sum=0;//101位全是9也不会爆int,不需要long long int 13 int len=strlen(s); 14 for(int i=0;i ) 15 { 16 sum+=s[i]-'0'; 17 } 18 if(sum==0) 19 { 20 cout< 0]<<endl; 21 continue; 22 } 23 int l=0; 24 while(sum!=0) 25 { 26 int t=sum%10; 27 sum/=10; 28 dig[l++]=t; 29 } 30 for(int i=l-1;i>0;i--) 31 { 32 cout< " "; 33 } 34 cout< 0]]<<endl; 35 } 36 return 0; 37 }