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 }
  • 相关阅读:
    杂项
    hdu 2094
    hdu acm 1004
    android 重装sdk或者系统的时模拟器出现can open ****
    使用Java模拟操作系统高优先级算法
    各种语法解释及用法
    枚举与结构
    闭包
    socket
    异常
  • 原文地址:https://www.cnblogs.com/wade1998/p/13443146.html
Copyright © 2011-2022 走看看