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

实验一 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);
             }
         }
     }

    }

实验结果:

1552573-20190915183029200-1410001880.jpg

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);
    }
}
实验结果:

1552573-20190915183047748-1675818584.jpg

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显示的结果不同
1552573-20190915183515250-642331584.jpg

1552573-20190915183446346-212374238.jpg

1552573-20190915183502764-63992319.jpg

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);
        }
}
实验结果:

1552573-20190915183155693-846489675.jpg

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);
            }
        }

    }
}
实验结果:

1552573-20190915183204911-2006966498.jpg

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

1552573-20190915183221471-103074647.jpg

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--输出一直是个错误,因为想着从上到下,我太难了

1552573-20190915183342608-370602193.jpg

实验总结:

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

转载于:https://www.cnblogs.com/muxixixixi/p/11455694.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值