zoukankan      html  css  js  c++  java
  • pat甲级1005 Spell It Right

    题意:给你一个10^100位的数字,求出其各位数字的和,再用对应的英文输出每一位数字。

    分析:简单语法题,10^100即使long long int都会爆,虽然__int128不会,但是似乎pat的评测机不支持这个....用char型数组或者string输入皆可。

     1 #include<iostream>
     2 #include<algorithm>
     3 #include<cstring>
     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<len;i++)
    15         {
    16             sum+=s[i]-'0';
    17         } 
    18         if(sum==0)
    19         {
    20             cout<<word[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<<word[dig[i]]<<" ";
    33         }
    34         cout<<word[dig[0]]<<endl;
    35     }
    36     return 0;
    37 }
  • 相关阅读:
    sublime there are no packages for installation
    linux 安装php扩展mbstring
    生成器表达式和列表推导式
    send()和next()
    迭代器生成器
    装饰器
    函数随笔
    Django进阶
    数据结构与算法入门
    MySQL必会
  • 原文地址:https://www.cnblogs.com/wade1998/p/13443146.html
Copyright © 2011-2022 走看看