首页 > 其他 > 详细

正整数的汉语读法

时间:2014-04-19 14:27:17      阅读:763      评论:0      收藏:0      [点我收藏+]

题目描述:现在让你在普通的计算器(位数最多12位)上增加一个功能button,点击这个button之后能进行数字显示模式的切换,即能显示我们汉语对数字表达的习惯。比如计算器最初显示“零”,你按“1”这个按键之后,屏幕显示的是“一”,继续按”9”这个键,显示的是”十九”,继续按“0”这个键,显示的是“一百九十”… …而且,还要增加两个功能button,“退格键”和“清空键”。继续按退格键,显示的是“十九”,继续按“清空建”,显示的是“零”。


注意连续的0的位置即可:

#include <stdio.h>
#include <string>
#include <iostream>
using namespace std;
string print(const string& num) {
  string str[] = {"零","一","二","三","四","五","六","七","八","九","十","百","千"};
  string unit[] = {"十","百","千"};
  string res = "";
  int i, j, len = num.length();
  for (i = 0; i < len; ++i) {

    if (num[i] == ‘0‘) {
      for (j = i + 1; num[j] == ‘0‘ && j < len; ++j);
      if (len - (i - 1) >= 6 && len - j <= 4)
        res += "万";
      if (j != len)
        res += "零";
      i = j - 1;
      continue;
    }
    else {
      res += str[num[i] - ‘0‘];
      //cout << (len - i) % 5 << endl;
      // 2 3 4  6 7 8
      if ((len - i) % 4 != 1)
        res += unit[(len - i - 2) % 4];
    }

    if (len - i == 5)
      res += "万";
    if (len - i == 9)
      res += "亿";
  }
  return res;
}
int main() {

  string s = "1010";
  cout << print(s) <<endl;
  return 0;
}



正整数的汉语读法,布布扣,bubuko.com

正整数的汉语读法

原文:http://blog.csdn.net/taoqick/article/details/24101929

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!