第三周课程总结&实验报告(一)

实验报告(一)

1.打印输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其中各位数字立方和等于该数本身。例如,153是一个“水仙花数”。

(1).实验代码:

package 测试;
public class 测试0 {

    public static void main(String[] args) {
        int sum,a,b,c;
        for(a=1;a<=9;a++)
        {
            for(b=0;b<=9;b++)
            {
                for(c=0;c<=9;c++)
                {
                    sum=a*100+b*10+c;
                    if(sum==a*a*a+b*b*b+c*c*c)
                    {
                        System.out.println(sum);
                    }
                }
            }
        }   

    }

}

(2)实验运行结果截图:

(3)实验大致思路:

题目限制了3位数,所以可以直接用3个数进行循环,然后判断符合的数进行输出

2. 编写Java程序,求13-23+33-43+…+973-983+993-1003的值。

(1).实验代码:

package 测试;
public class 测试0 {
	public static void main(String[] args) {
		int sum=0,a,b=1;
		for(a=1;a<=100;a++)
		{
			sum+=(a*10+3)*b;
			b=-b;
		}
		System.out.println(sum);
	}

}

(2).实验运行结果截图:

(3)实验大致思路:

观察题目就大致能看出来是a*10+3模式的数进行循环加减,直接循环之后输出最后的结果就完成了

3. 编程求1!+2!+3!+…+20!。

(1).实验代码:

package 测试;
public class 测试0 {

    public static void main(String[] args) {
        long sum=0,a,b,c;
        for(a=1;a<=20;a++)
        {
        	b=1;
        	for(c=1;c<=a;c++)
        	{
        		b*=c;
        	}
        	sum+=b;
        }
        System.out.println(sum);
    }

}

(2)实验运行结果截图:

(3)实验大致思路:

需要在题目中建立一个循环来计算阶乘,完成了计算阶乘这一步剩下的就只是相加然后输出结果,但是如果定义的变量为int,就会出问题,结果是268040729,改成long之后就正常了,结果为2561327494111820313.原因是数字太大,超出了范围.

4. 编写Java程序,计算8+88+888+…前10项之和。

(1).实验代码:

package 测试;
public class 测试0 {

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

}

(2)实验运行结果截图:

(3)实验大致思路:

和第二题类似,都是找到循环相加的式子直接循环相加并输出

5. 一个数如果恰好等于它的因子之和,这个数就称为完数。编写程序输出1000以内的所有完数。

(1).实验代码:

package 测试;
public class 测试0 {

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

}

(2)实验运行结果截图:

(3)实验大致思路:

循环1~1000所有的数,将不等于本身的他们的因子相加之后再与原来的数进行比较,相同则可以直接输出

6. 编写应用程序,输出满足1+2+3+…+n<8888的最大正整数。

(1).实验代码:

package 测试;
public class 测试0 {

    public static void main(String[] args) {
        int sum=0;
        for(int i=1;i<8888;i++)
        {
        	sum+=i;
        	if(sum>8888)
        	{
        		sum=sum-i;
        		i--;
        		System.out.println("n为"+i);
        		System.out.println("最大总和为"+sum);
        		break;
        	}
        }
        
        
    }

}

(2)实验运行结果截图:

(3)实验大致思路:

把1,2,3...n逐渐相加,直到出现大于8888的,这个时候总数减去这轮循环加的数,这轮循环加的数减一就可以求出n还有小于8888的最大和

7. 使用for循环打印下面的图(等腰三角形)

(1).实验代码:

package 测试;
public class 测试0 {

    public static void main(String[] args) {
        int a=4,b=0;
        for(int i=1;i<=5;i++)
        {
        	for(int j=1;j<=a;j++)
        	{
        		System.out.print(" ");
        	}
        	System.out.print("*");
        	for(int k=1;k<=b;k++)
        	{
        		System.out.print(" *");
        	}
        	a--;
        	b++;
        	System.out.println("");
        }
        
        
    }

}

(2)实验运行结果截图:

(3)实验大致思路:

设计好要输出多少空格和什么时候输出空格和*,然后用for循环输出就可以了

第三周课程总结:

这周对java进一步的学习,学习了很多新的用法,但是还是不能很熟练的运用到实际使用,这次作业的7道题不难,能用C语言的模式稍微变动一下就行了,不过java还是对我来说有些复杂,我觉得我要通过题目才能把java的那些方法运用起来.
理论比起实践来说还是后者比较重要而且相对更容易弄懂.

原文地址:https://www.cnblogs.com/zhuwanxing/p/11516095.html