题目:
解题思路:
这个202320232023数字太大,所以不能定义为int类型,开始时想先定义为long类型,然后再继续写一个循环,计算阶乘,然后再用LinkdeList的方法输出后九位 下面图片是一开始写的代码
这个代码它是不输出结果,但是一直在运行,也不报错,然后我就把num改小了,是可以输出结果,所以我觉得应该是数字太大的问题,(这个代码也可以更简化,后面不用定义LinkdeList也行,直接输出,我当时想复杂了)然后就上网搜了一下,看了有一些别人写的,发现这题其实是有规律的,在i=39之后s的后九位数字就恒定不变了,下面是代码
然后这个结果后九位为420940313。
我还在网上搜到了一个大整数类BigInteger,用这个 类的一些方法也可以将这题最终结果算出来,为420940313。然后下面是这个类的一些加减乘除等方法
public class test{
public static void main(String[] args) {
//加
BigInteger a=new BigInteger("8");
BigInteger b=new BigInteger("3");
System.out.println("a+b="+a.add(b));
//减
BigInteger c=new BigInteger("6");
BigInteger d=new BigInteger("6");
System.out.println("d-c="+d.subtract(c));
//乘
BigInteger e=new BigInteger("5");
BigInteger f=new BigInteger("7");
System.out.println("e*f="+e.multiply(f));
//除
BigInteger g=new BigInteger("100");
BigInteger h=new BigInteger("4");
System.out.println("g/h="+g.divide(h));
//类型转换
int i=200;
BigInteger j=BigInteger.valueOf(i);
System.out.println("j="+j);
收获:要换思维看题目。