1.编写应用程序求1!+2!+…+10!。
public class ex1 {
public static void main(String args[]) {
int j;
int m=1;
int sum=0;
for(j=1;j<=3;j++)
{
m=m*j;
sum=sum+m;
}
System.out.println("sum="+sum);
}
}
本来我好像想复杂了,用了两层循环,一层循环足矣。
2.分别用do-while和for循环计算1+1/2!+1/3!+1/4!… … 的前20项和。
public class ex2 {
public static void main(String args[]) {
double a = 1;
double sum = 0;
for(double i=1;i<=20;i++) {
a = a*i;
sum = sum + 1.0/a;
}
System.out.println("sum = "+sum);
double i = 0;
do {
i=i+1;
a = a*i;
sum = sum + 1.0/a;
}
while(i<=20);
System.out.println("sum = "+sum);
}}
这里我觉得要注意就是数据类型的转换,分数的运算,就要多注意数据类型,刚开始我设置的参数都是int型,结果是1,我才意识的数据类型的问题。
3.编写应用程序,使用for循环语句计算8+88+888…前10项之和.
public class ex3 {
public static void main(String args[]) {
double n = 0;
double sum = 0;
for(int i = 0;i <3 ;i++) {
double a = 0;
a = a + 8*Math.pow(10,i);
n = n + a;
sum = sum + n;
}
System.out.println("sum = "+sum);
}}
这里要注意的是java里不存在c语言中的“^”,要进行指数运算的话,是用的Math.pow(a,b)==a^b。
4.编写应用程序,输出满足1+2+3…+n<8888的最大正整数n。
public class ex4 {
public static void main(String args[]) {
int n = 1;
int sum = 0;
while(sum < 8888) {
sum = sum +n;
n = n+1;
}
int s =0;
for(int j =1;j<(n-1);j++) {
s=s+j;
}
System.out.println(s);
System.out.println((n-2));
}}
这里要考虑while语句的循环结束点,在跳出while时,其实n又进行了++运算。