国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

基礎(chǔ)練習(xí) 數(shù)的讀法

2019-11-08 02:46:50
字體:
供稿:網(wǎng)友

問題描述  Tom教授正在給研究生講授一門關(guān)于基因的課程,有一件事情讓他頗為頭疼:一條染色體上有成千上萬個堿基對,它們從0開始編號,到幾百萬,幾千萬,甚至上億?! ”热缯f,在對學(xué)生講解第1234567009號位置上的堿基時,光看著數(shù)字是很難準(zhǔn)確的念出來的?! ∷裕惹械匦枰粋€系統(tǒng),然后當(dāng)他輸入12 3456 7009時,會給出相應(yīng)的念法:  十二億三千四百五十六萬七千零九  用漢語拼音表示為  shi er yi san qian si bai wu shi liu wan qi qian ling jiu  這樣他只需要照著念就可以了?! ∧愕娜蝿?wù)是幫他設(shè)計這樣一個系統(tǒng):給定一個阿拉伯?dāng)?shù)字串,你幫他按照中文讀寫的規(guī)范轉(zhuǎn)為漢語拼音字串,相鄰的兩個音節(jié)用一個空格符格開?! ∽⒁獗仨殗?yán)格按照規(guī)范,比如說“10010”讀作“yi wan ling yi shi”而不是“yi wan ling shi”,“100000”讀作“shi wan”而不是“yi shi wan”,“2000”讀作“er qian”而不是“l(fā)iang qian”。輸入格式  有一個數(shù)字串,數(shù)值大小不超過2,000,000,000。輸出格式  是一個由小寫英文字母,逗號和空格組成的字符串,表示該數(shù)的英文讀法。樣例輸入1234567009樣例輸出shi er yi san qian si bai wu shi liu wan qi qian ling jiu

解答代碼

#include<iostream>  #include<fstream>  #include<string>  #include<cstring>  #include<algorithm>  #include<sstream>  using namespace std;    string table[11]={"ling ","yi ","er ","san ","si ","wu ","liu ","qi ","ba ","jiu "};  string table2[4]={"qian ","bai ","shi "};  int flag=1;  string change(string s)  {      int i,index=0;          string result="";      char ss[4]="";      //過濾無效的前導(dǎo)0      for(i=0;i<s.length()&&s[i]=='0';i++);          for(;i<s.length();i++)          ss[index++]=s[i];      ss[index]='/0';  	    int length=strlen(ss);  	    //記錄后導(dǎo)0      int record=0;      for(i=length-1;i>=0;i--)          if(ss[i]=='0')              record++;          else               break;      if(record>0)          flag=0;      int k=4-length;          //2位含十的有點特殊  	if(length < s.length() && length!=0)		cout<<"ling ";    if(length==2)      {          if(ss[0]=='1' && ss[1]=='0')              return "yi shi ";          if(ss[0]=='1'  && ss[1]!='0')              return "shi "+table[ss[1]-'0'];          if(ss[0]!='1' && ss[1]=='0')              return table[ss[0]-'0']+"shi ";          if(ss[0]!='1' && ss[1]!='0')              return table[ss[0]-'0']+"shi "+table[ss[1]-'0'];      }        for(i=0;i<length-record;i++,k++)      {          if(ss[i]!='0')          {              result+=table[ss[i]-'0']+table2[k];          }          else if(i!=0 && ss[i]!=ss[i-1])              result+="ling ";      }      return result;  }    int main()  {       string data="";      string s1="",s2="";            while(cin>>data)      {          int pos=data.find('.');          if(pos!=string::npos)          {              s1=data.substr(0,pos);              s2=data.substr(pos+1);          }          else          {              s1=data;          }          if(s1.length()>8)          {              string temp1=s1.substr(0,s1.length()-8);              s1=s1.substr(s1.length()-8,s1.length());              string result1=change(temp1);              if(result1.length()!=0)                  cout<<result1<<"yi ";          }          if(s1.length()>4)          {              string temp2=s1.substr(0,s1.length()-4);              s1=s1.substr(s1.length()-4,s1.length());              string result2=change(temp2);              if(result2.length()!=0)                  cout<<result2<<"wan ";          }          if(s1.length()>0)          {              string result3=change(s1);              if(result3.length()!=0)                  cout<<result3<<" ";          }          if(s2.length()==0 || (s2[0]=='0' && s2[1]=='0') )              cout<<" "<<endl;          else          {              if(s2[0]=='0'&&s2[1]!='0')              {                  cout<<table[s2[1]-'0']<<" "<<endl;                  continue;              }              if(s2[0]!='0'&&s2[1]=='0')              {                  cout<<table[s2[0]-'0']<<" "<<endl;                  continue;              }              if(s2[0]!='0'&&s2[1]!='0')              {                  cout<<table[s2[0]-'0']<<" "<<table[s2[1]-'0']<<" "<<endl;              }          }      }            return 0;  }


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 江山市| 界首市| 永德县| 蒙自县| 兴安县| 高邮市| 星座| 襄汾县| 嘉祥县| 泰和县| 富裕县| 喜德县| 久治县| 大余县| 拉萨市| 通河县| 乐陵市| 姚安县| 青海省| 青州市| 德清县| 寿光市| 桂平市| 库伦旗| 乌苏市| 康乐县| 镇宁| 封开县| 十堰市| 金秀| 青浦区| 武宣县| 乳山市| 呼图壁县| 阿拉善左旗| 略阳县| 汉源县| 荆州市| 色达县| 洞口县| 望奎县|