• 撰写第三周课程总结及实验报告(一)


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

    代码

       public  class  Shuixianhua{
       public static void main(String[]args) {
    	   int a,b,c;
    	   for(int i=100;i<1000;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);
    		   }
    	   }
       }
       }
    

    遇到的问题:math没大写,导致编译不通过

    解决方法:百度了一下java math的用法,要大写Math

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

    代码:

    package hello.java;
    
    public class heyong {
    
    
    	  public static void main(String args[]){
    	     int sum=0,a=13;
    	  for(int i=1;i<=100;i++)
    	{
    	   sum=sum+a;
    	  a=Math.abs(a)+10;
    	if(i%2==0)
    	{
    	   a=a;
    	}
    	else 
    	{
    	a=-a;
    	}
    	}
    	  System.out.println(sum);
    	  }
    }
    

    遇到的问题:答案错误,循环开始第一个数为23,此时i=1,if语句必须要让它变为负的,开始我把它搞成正的了,很烦。

    解决方法:再细细读了下循环

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

    代码:

    package hello.java;
    
    public class xiaohe {
    
    public static void main(String[] args) {
    	int sum=1,SUM=0;
    	for(int i=1;i<=20;i++) {
    		for(int j=1;j<=i;j++)
    		{
    			sum=sum*j;
    		}
    		SUM=SUM+sum;
    		sum=1;
    	}
    	System.out.println(SUM);
    }
    
    }
    

    这个题目不难

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

    代码:

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

    这题分分钟

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

    代码:

    package hello.java;
    public class xiaohe {
    
    public static void main(String[] args) {
    	 for(int i=2;i<=1000;i++) {
                int k=0;
                for(int j=1;j<i;j++) {
                    if(i%j==0)
                        k=k+j;
                }
                if(k==i)
                    System.out.println(i);
            }
        }
      }
    

    这题其实还好,以前c语言记过这个题目,还稳得住

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

    代码:

    package hello.java;
    
    public class heyong {
    public static void main(String args[]){
     int n=0,i;
     for(i=1;i+n<8888;i++)
     {
    	n=n+i;
     }
     
     
    	 System.out.println(i-1);
     
    	  
     }
    }
    

    遇到的问题:开始不知道循环结束条件,总编译错误

    解决方法:看了下别人的代码,搞清楚了循环条件,和输出结果

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

    代码:

    package hello.java;
    public class xiaohe {
    
    public static void main(String[] args) {
    	
    	 
    	for(int i=1;i<=5;i++)
    	{
    		for(int j=5;j>=i;j--) {
    			System.out.print(" ");
    			
    		}
    		for(int k=1;k<=i;k++)
    		{
    			System.out.print("* ");
    		}
    		System.out.println();
    	  }
         }
    
         }
    

    遇到的问题:编译错误,答案错误

    解决方法:编译错误是因为我忘记符号汉字类输出要打双引号,解决答案错误我看了下网上的代码,发现打印符号汉字在java中也要用print而不是println

    第三周java总结

    构造方法
    类名称 对象名称=new 类名称 ()

    构造方法的名称必须与类名称一致;
    构造方法的声明处不能有任何返回值类型的声明;
    不能在构造方法中使用return 返回一个值。

    this调用本类构造方法必须放在首行,不能循环

    this+成员变量有四个作用
    1.强调调用本类方法
    2.表示类的成员属性
    3.调用构造方法
    4.表示当前对象

    当前对象指的是正在调用的对象

    static声明属性,将静态属性共享为公共属性

    java中常用的内存区域
    1.栈内存空间:保留所有的对象名称(准确说是保留了堆内存空间的地址)
    2.堆内存空间:保留每个对象的具体属性内容
    3.全局数据区:保留static的属性
    4.全局代码区:保留所有方法定义

    static方法定义的说明
    1.本类没有提供有普通属性,这样产生实例化对象没有意义;
    2.本类无法直接进行对象实例化,只能够利用static操作;

    说明:非static声明的方法可以去调用static声明的属性或方法,但static声明的方法不能调用非static类型声明的属性或方法。
    static类型的方法在对象未被实例化时就可以被类名所调用。

  • 相关阅读:
    《架构之美》读后感(二)
    《架构之美》读后感(一)
    《代码大全2》阅读笔记03
    《代码大全2》阅读笔记02
    《代码大全2》阅读笔记01
    学习进度报告(十四)
    软件方法阅读笔记03
    第二讲
    1.26 十讲第一讲
    1.23
  • 原文地址:https://www.cnblogs.com/1793979463hyx/p/11519564.html
Copyright © 2020-2023  润新知