1!+2!+3!+….+100!
/代码求解1累加到100的阶乘,为了扩展数据容量使用了math库中的BigInteger类型/
import java.math.*;
public class hundred {
public static void main(String[] args){
BigInteger sum=new BigInteger("0");//**存放累加和**
BigInteger temp=new BigInteger("1");//**存放每次循环中的阶乘值**
for(int i=1;i<=100;i++)
{
BigInteger b=BigInteger.valueOf(i);//**调用类方法,将整型i转换到BigInteger类型**
temp=temp.multiply(b);//**调用实例方法,将b累乘到temp上**
sum=sum.add(temp);//**调用实例方法将每次循环得到的阶乘加上去,注意方法中的参数类型是BIgInteger**
}
System.out.println(sum.toString());//**所有的类默认是Object类的子类或间接子类,都有toString方法得到字符串形式,一般形式是类名@引用的字符串表示,一般包装好的类都会进行重写,如本例**
}
}
每次循环创建了一个实体,实体的引用赋给了b,每次循环之后前一个实体被java的垃圾处理器回收
Tips:观测变量的值,设置好断点(在某行双击即可),点击上方工具栏的debug,按一下F8即可跳到下一个断点,观测此时变量的值以及内存十分方便
2.主函数中的参数使用
程序目的是要求统计出主函数字符数组第一个参数中各个数字字符出现的次数
import java.util.*;
public class C {
public static void main(String[] args){
char c[]=args[0].toCharArray();
/***主函数参数是一个字符串数组,每个字符串占一个元素空位,args[0]代表第一个字符串,用实例方法toCharArray()可将其存放在一个字符串数组***/
int b[]=new int[10];
for(char k:c)
{
switch (k)
{
case'0': b[0]++;break;
case '1': b[1]++;break;
case '2': b[2]++;break;
case '3': b[3]++;break;
case '4': b[4]++;break;
case '5': b[5]++;break;
case '6': b[6]++;break;
case '7': b[7]++;break;
case '8': b[8]++;break;
case '9': b[9]++;break;
}
}
for(int i=0;i<10;i++)
{ System.out.println(i+"has"+b[i]+"个");}
}
}
问题来了,如何输入主函数参数呢?
*第一种方法:在Eclipse中点击对应java文件 ,run as中进入Run configuration,在*Arguments中输入,由空格分离各个参数
第二种方法:在源文件目录下使用javac 文件名.java编译.java文件,进入生成的字节码文件目录中使用命令java+类名即可(若有包名则需要返回包目录下,类名前加包名.**)
待输入参数赘在后方,例如java ppt.C 1998意思是在ppt目录下编译C.class文件,输入参数1998