题目描述:现在让你在普通的计算器(位数最多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; }
原文:http://blog.csdn.net/taoqick/article/details/24101929