gpt4 book ai didi

java - 数字到单词

转载 作者:行者123 更新时间:2023-12-02 02:59:24 24 4
gpt4 key购买 nike

即使我检查了许多边界情况,我也没有发现我的代码出错了

import java.util.*;
class fun
{
String a[] = {"", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen"};
String b[] = {"", "Ten", "Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety"};
String dis(int n)
{
String s ="";
if(n/100>0)
s+=a[n/100]+" Hundred ";
if(n%100/10==0)
s+=a[n%10];
else if(n%100/10==1)
s+=a[n%100];
else
s+=b[n%100/10]+" "+a[n%10];
return s;
}
}
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int t = sc.nextInt(), a, b, c, d, e;
fun f = new fun();
while(t-->0)
{
String Str="";
long n = sc.nextLong();
a=(int)(n/Math.pow(10,12));
b=(int)(n/Math.pow(10,9)%1000);
c=(int)(n/Math.pow(10,6)%1000);
d=(int)(n/Math.pow(10,3)%1000);
e=(int)(n%1000);
if(a==1)
Str = "One Trillion";
else
{
if(b!=0)
Str+=f.dis(b)+" Billion ";
if(c!=0)
Str+=f.dis(c)+" Million ";
if(d!=0)
Str+=f.dis(d)+" Thousand ";
Str+=f.dis(e);
}
System.out.println(Str);
}
}
}

如果输入是:
1
104382426112

那么输出是:
一千四亿三百八千二百万四百二十六千一百一十二

最佳答案

我看到的唯一问题是此代码不适用于大于 Integer.MAX_VALUE ...即 2,147,483,647 的数字。那是 20 亿一点点。

该限制的原因是您正在使用 int 进行整数算术。解决方案:使用long代替。

关于java - 数字到单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42580253/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com