(算法)整数转汉字描述
算法 整数 汉字 描述
2023-09-14 08:59:06 时间
题目:
给定一个整数,打印该整数的汉字描述。(例如:11001:“一万一千零一”)
思路:
按照以下位数来转换:
亿级
万级
千及千以下
代码:
由于编程环境不支持中文,故以拼音代替,若需转为汉字,只需改为对应汉字并将代码中的空格符去掉即可。
#include<iostream> using namespace std; string bigs[3]={"","Wan","Yi"}; string level[4]={"Qian","Bai","Shi",""}; string digits[10]={"Ling","Yi","Er","San","Si","Wu","Liu","Qi","Ba","Jiu"}; string numToChinese1000(int num,int offset); string numToChinese(int num){ if(num>=0 && num<10){ return digits[num]; } else if(num<0) return "Fu "+numToChinese(-1*num); string str=""; int count=0; while(num>0){ if(num%10000!=0){ str=numToChinese1000(num%10000,count)+bigs[count]+" "+str; } num=num/10000; count++; } return str; } string numToChinese1000(int num,int offset){ string str=""; int n=1000; int count=0; bool IsZero=true; bool IsOn=false; if(offset>0 && num>0 && num<=9) return digits[num]+" "; while(num>0){ IsZero=true; if(num>=n){ str+=digits[num/n]+" "+level[count]+" "; num=num%n; IsZero=false; } if((!IsOn) && IsZero){ str+=digits[0]+" "; IsOn=true; } n=n/10; count++; } return str; } int main(){ int num; while(cin>>num){ cout<< numToChinese(num) <<endl; } return 0; }
相关文章
- Unity3D_(游戏)甜品消消乐02_游戏核心算法
- Java实现 蓝桥杯VIP 算法提高 插入排序
- Java实现 蓝桥杯VIP 算法提高 彩票
- Java实现 蓝桥杯VIP 算法提高 师座操作系统
- Java实现 蓝桥杯VIP 算法训练 整数平均值
- Java实现 蓝桥杯VIP 算法训练 整数平均值
- Java实现 蓝桥杯 算法训练 出现次数最多的整数
- python——二分查找算法
- [置顶] 整数拆分 整合算法
- (算法)从0到n整数中数字2出现的次数
- (算法)从0到n整数中数字2出现的次数
- (算法)等概率选出m个整数
- (算法)整数转汉字描述
- (算法)整数转英文描述
- 程序员的算法趣题Q09: 落单的男女
- matlab CPD算法实现点云精配准
- Algorithm之PrA:PrA之IP整数规划(包括0-1整数规划)算法经典案例剖析+Matlab编程实现
- 【机组组合】基于Benders分解算法解决混合整数规划问题——机组组合问题(Matlab代码实现)
- 基于人工蜂群算法优化的lssvm回归预测-附代码
- 343. 整数拆分-力扣最快算法
- 算法基础:整数排序问题(连续整数仅仅保留首尾两个数字)
- 算法战斗:给定一个号码与通配符问号W,问号代表一个随机数字。 给定的整数,得到X,和W它具有相同的长度。 问:多少整数协议W的形式和的比率X大?
- 八大排序算法总结
- Python数模笔记-模拟退火算法(3)整数规划问题
- 如何使用非递归算法实现二叉排序树的建立
- C++算法之数据结构一
- 数据结构和算法 函数调用栈和递归