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

实验一 Java开发环境与简单Java程序

一、实验目的

熟悉JDK开发环境
熟练掌握结构化程序设计方法

二、实验内容

1.在此处输入标题打印输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其中各位数字立方和等于该数本身。例如,153是一个“水仙花数”。
2.编写Java程序,求13-23+33-43+…+973-983+993-1003的值。
3.编程求1!+2!+3!+…+20!。
4.编写Java程序,计算8+88+888+…前10项之和。
5.一个数如果恰好等于它的因子之和,这个数就称为完数。编写程序输出1000以内的所有完数。
6.编写应用程序,输出满足1+2+3+…+n<8888的最大正整数。
7.使用for循环打印下面的图形。

三、实验过程

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

    public class Shuixianhua {

    public static void main(String[] args) {
    	// TODO Auto-generated method stub
        int a, b, c;
        for(int i=100;i<999;i++)
        {
    	    a=i/100;
    	    b=(i%100)/10;
    	    c=i%10;
    	    if(Math.pow(a, 3)+Math.pow(b, 3)+Math.pow(c, 3)==i)
    	    {
    		    System.out.println(i);
    	    }
        }
    }

}

实验结果:

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

实验源码:
public class Demo1 {
    public static void main(String[] args) {
        int a=0;
        for(int i=0;i<100;i++)
        {
            if(i%2==0)
            {
                a-=i*10+3;       //偶次数前是负号
            }
            else{
                a+=i*10+3;
            }
        }
        System.out.println(a);
    }
}
实验结果:

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

实验源码:
public class Demo2 {
    public static void main(String[] args) {
        int sum=0;
        int n=1;
        for (int i=1; i<=20 ;i++ ) {
                n *= i;     //阶乘
                sum += n;       //累加数值
            }
        System.out.println(sum);
    }
}
实验结果

遇到的问题:
在编译过程中,定义数据类型时,使用int和long显示的结果不同

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

实验源码:
public class demo3 {
    public static void main(String[] args) {
        long a= 8,sum=0;
        for(int i=0;i<10;i++)
            {
                sum+=a;   //累加总和
                a=a+(a*10);    //a+a*10;(a+a*10)*10+a;...
            }
            System.out.println(sum);
        }
}
实验结果:

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

实验源码:
public class demo4 {
    public static void main(String[] args) {
        for (int i = 1; i < 1000; i++) {
            int sum = 0;
            for (int j = 1; j < i; j++) {
                if (i % j == 0) {
                    sum =sum+ j;        //因子数:6=1+2+3
                }   
            }
            if (i == sum) {
                System.out.println(i);
            }
        }

    }
}
实验结果:

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

实验源码:
public class Demo5 {
    public static void main(String[] args) {
        int n=0, sum=0;
        for(int i =0;i<1000;i++)
        {
            sum=sum+n;
            n++;
            if(sum>8888)
            {
                break;
            }
        }
        n--;
        System.out.println(n-1);
    }
}
实验结果:

能输出满足1+2+3+…+n<8888的最大正整数应该是n=132

7.使用for循环打印下面的图形。

实验源码:
public class demo6 {
    public static void main(String[] args) {

        for( int i=1;i<=5;i++)     //先输出空格,再输出*
        {
            for(int j=0;j<5-i;j++)
            {
                System.out.print(" ");          //从上往下
            }
            for(int k=1;k<=i;k++)
            {
                System.out.print("* ");
            }
            System.out.println();
        }

    }
}
实验结果:

遇到的问题:写代码的思路是先打空格再打*,出现了问题,后来发现我把j++打成了j--输出一直是个错误,因为想着从上到下,我太难了

实验总结:

在编写代码的过程中会遇到很多问题
1.因为学习基础不扎实,有很多小细节问题需要去百度
2.算法能力还是欠缺的,思路是对的,但是实现起来就要想半天
3.在编译时对语句的使用不熟练
需要去解决:熟练语法,有时间刷刷题,知识点要记牢,不能粗略的阅读

原文地址:https://www.cnblogs.com/muxixixixi/p/11455694.html