Java基础---Java 练习题49

1.分别用do-while和for循环计算1+1/2!+1/3!+…前20项和

/**
 * 用do-while计算1+1/2!+1/3!+……的前20项的和
 * @Hoagn
 *
 */
public class Add2 {
 
	public static void main(String[] args) {
		int  i = 1, a = 1;
		double sum = 0,b = 0;
		do {
			a = i * a;
			b = 1.0 / a;
			sum = sum + b;
			i++;
		}while(i <= 20);
		
		System.out.println(sum);
	}
 
}

  for

/**
 * 用for循环计算1+1/2!+1/3!+……的前20项的和
 * @author Hogan
 *
 */
public class Add1 {
 
    public static void main(String[] args) {
        int  i = 1, a = 1;
        double sum = 0,b = 0;
        for(i = 1; i <= 20; i++) {
            a = i * a;
            b = 1.0 / a;
            sum = sum + b;
        }
        System.out.println(sum);
    }
 
}

编程找出1000以内的所有完数。

public class HomeWork05 {
    public static void main(String[] args){
        {
            int i,j,k;
            for(i=1;i<1000;i++)
            {
                int sum=0;
                for(j=1;j<i;j++)
                {
                    if(i%j==0){    
                        sum+=j;
                    } 
                }
                    if(sum==i){
                    System.out.println(i);
                }
            }
        }
    }
}

  

用for循环计算8+88+888+...前10项之和。

public class demo49_4_5 {
 
	public static void main(String[] args) {
		long sum=0,item=8;
		for(int i=1;i<=10;i++) {
			sum = sum+item;
			item = item*10+8;
		}
		System.out.println(sum);
 
	}
 
}

  

输出满足1+2+3+…+n小于8888的最大正整数

public class Main {
    public static void main(String args[]) {
        int i=1,s=0;
        while(s<8888){
            i++;
            s+=i;
        }
        System.out.println(i);
    }
}

  

 1 public class Hello {
 2  
 3     public static void main(String[] args) {
 4         int sum=0;
 5         int i;
 6         for(i=1;sum+i<8888;i++) {
 7             sum=sum+i;            
 8         }
 9         System.out.println("sum为:"+sum);
10         System.out.println("最大正整数为:"+(i-1));
11     }
12 }

猜你喜欢

转载自www.cnblogs.com/hoganhome/p/11537728.html