首页 - 成人英语 > leetcode 官网

leetcode 官网

发布于:2021-07-30 作者:jason 阅读:293

leetcode 官网

将非负整数转换为它们对应的英文表示。可以保证给定的输入小于231-1。

例1:

leetcode 官网

输入:123输出

例2:

输入/输出

例3:

输入/输出

例4:

输入/输出

思维分析我们可以分解这个问题。适当的递归解。

在第一步中,如果num0退出第二步,如果判断ifnum10000000m首先转换高于百万的位,如果num0退出第三步,它将更新numnum/1000000,如果判断ifnum 100000,然后如果num0退出剩余位,它将更简单地转换高于千的位,并更新numnum/1000。不到二十个需要注意

不难,这是一个适当的递归问题,即如何将一个三位数转换成英文。

class solution { private :字符串结果;//用于存储结果stringnum[10]{零、一、二、三、四、五、六、七、八、九};//oneNum[i]代表的是[10]{十,十一,十二,三十,十四,十五,六十,七十,八十,九十};//tenNum[i]代表十个一组[10] {,十,二十,三十,四十,五十,六,七,八,九};//tyNum[i]代表I ten public :stringnumberheads(int num){ resultmynumtow(result,num);result . resize(result . size()-1);//记得删除最后一个空格returnresultbill之前的voidmynumtoword(字符串result,int num){//handle if(num * * * *){ mynumtoword(result,num/* * *);结果十亿//记得加上正确的数字% * * * * *;if(num0){ return;} }//处理百万之前的if (num100000) {mynumtow (result,num/100000);ResultMillion//记住添加正确的num00000;if(num0){ return;} }//千前处理if (num 1000) {mynumtow (result,num/1000);结果原因//记得加对num00;if(num0){ return;} }//处理剩下的三个inttempValuenum//处理百位数if(num/1000){ resultonenum[tempvalue/100]tendend tempvalue 0;}//处理剩余的两位if(tempValue/102){//如果是resulttyNum[tempValue/10]//10]大于等于20//转换十位if(tempValue 0){//每个位需要转换非零的result nenum[tempValue]} } else if(tempValue 10){//[10,20])的直接转换结果tenum[tempValue]} else if(tempValue 0){//resultoneNum[tempValue]} else if(num){ }

这个问题不难,但是容易被吓到。关键是把问题分成小问题,递归求解。

二维码

扫一扫关注我们

版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件至 201825640@qq.com举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。

上一篇:递归英文

下一篇:h开头的英文名

相关文章

自定义链接1

电话咨询
自定义链接2