Java 字数

Java 字数,java,string,Java,String,即使我检查了很多边境案件,我也不知道我的代码哪里出错了 如果输入为: 1 10438242612 然后输出为: 一亿四千四百三十八万两千四百二十二万六千一百一十二我能看到的唯一问题是,这段代码对大于整数的数字不起作用。MAX_VALUE。。。电话号码是2147483647。那是20亿,还有一点 该限制的原因是您正在使用int进行整数运算。解决方案:改用long。我能看到的唯一问题是,此代码对大于Integer.MAX\u值的数字无效。。。电话号码是2147483647。那是20亿,还有一点 该限

即使我检查了很多边境案件,我也不知道我的代码哪里出错了

如果输入为:
1
10438242612

然后输出为:

一亿四千四百三十八万两千四百二十二万六千一百一十二

我能看到的唯一问题是,这段代码对大于整数的数字不起作用。MAX_VALUE。。。电话号码是2147483647。那是20亿,还有一点


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

我能看到的唯一问题是,此代码对大于Integer.MAX\u值的数字无效。。。电话号码是2147483647。那是20亿,还有一点


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

你的意思是
1 104382426112
你有没有检查
1空格104382426112
或者什么?你的趣味课程没有构造函数。你可以通过让你的问题更容易理解来帮助别人回答你;i、 你的预期输出是什么?它的输出是什么?这对你有帮助吗?“可能重复”并不意味着您的代码来自其他人,这意味着你的问题/问题已经发布。你的意思是什么
1 10438242612
你检查了
1空格10438242612
还是什么?你没有一个有趣的类的构造函数。你可以通过让你的问题更容易理解来帮助人们回答你;i、 你的预期输出是什么?它的输出是什么?这对你有帮助吗?“可能重复”并不意味着您的代码来自其他人,而是意味着您的问题/问题已经发布
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);
        }
    }
}