一,打印输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其中各位数字立方和等于该数本身。例如,153是一个“水仙花数”。
public class one{ public static void main (String args[]){ int x,y,z; for(int i=100; i<=999;i++){ z=i%10; y=(i%100)/10; x=i/100; if(Math.pow(x,3)+Math.pow(y,3)+Math.pow(z,3) == i){ System.out.println(i); } } } }
思路:先将各位数字,十位数字和百位数字分别求出来并赋值给xyz,然后用一个if循环找出符合要求(各位数字立方和等于该数本身)的数并输出。
二,编写Java程序,求13-23+33-43+…+973-983+993-1003的值。
import java.util.Scanner; public class two { public static void main(String[] args) { int i=13,j=-23,sum=0; while(i<=1003) { sum=sum+i+j; i+=20; j-=20; } System.out.println(sum); } }
思路:有两种思路,一种是每次变化10并用一个i*=-1来运算,我是将整个过程分为正数和负数分别来计算,然后全部加起来。代码行数会稍微多一点,但是感觉看起来更快。
三,编程求1!+2!+3!+…+20!。
public class three { public static void main (String args[]){ int i,j=1,sum=0; for(i=1;i<=20;i++) { j*=i; sum+=j; } System.out.println(sum); } }
思路:这题没啥好说的,就是通过for循环将每个数的阶乘求出来加在一起啊。
四,编写Java程序,计算8+88+888+…前10项之和。
public class four{ public static void main (String args[]) { long sum=0,m=8; for(int i=1;i<=10;i++) { sum=sum+m; m=m * 10+8; } System.out.println(sum); } }
思路:还是没什么好说的,通过for循环将1位数的值加到10位数的值就o98k了。
五,一个数如果恰好等于它的因子之和,这个数就称为完数。编写程序输出1000以内的所有完数。
public class five{ public static void main (String args[]) { int i,j; for(i=2;i<=1000;i++) { int sum=0; for(j=1;j) { if(i%j==0) sum+=j; } if(sum==i) System.out.println(i); } } }
从1开始把每个数都计算一下,第一个for循环控制最大到1000,第二个for循环+if语句把所有因子都找出来,挑出那些恰好等于它的因子之和的数进行输出。
六,编写应用程序,输出满足1+2+3+…+n<8888的最大正整数。
public class six { public static void main(String[] args) { int i,sum=0; for (i=1;sum+i<8888;i++) { sum+=i; } i=i-1; System.out.println(i); } }
这题也就是一个用for语句循环求和的,没什么好说的,和前面的差不多,然后i=i-1就是因为最后一次循环会超过8888然后再进行一次判断for循环不能执行,所以要-1保证是总和小于8888的最大值
七,使用for循环打印下面的图形。
public class seven { public static void main (String asrs[]) { int i,j,k; for(i = 1; i <= 5; i++) { for(j = 5;j >= i; j--) { System.out.print(" "); } for(k=1;k<=i;k++) { System.out.print("* "); } System.out.println(); } } }
第一个for循环控制每行打印,第二个for循环控制每行符号输出的位置,第三个for循环控制每行输出符号的个数,然后控制行数为5行,然后输出就得到了三角形。
总结
这次作业总体不难,虽然说出现了一些粗心(什么-打成+,少了分号之类的)就不一一列举了,然后第三题的定义数据类型不用int而用long需要注意一下,int限制了长度,还有第六题i-1需要注意一下就没别的问题。
this的用处
1.作为对象的方法(强调本类)。
2.作为普通函数中表示类中的属性。
3.作为构造函数调用(使用this调用本类的构造方法)
4.表示当前对象
java主要的内存空间
1.全局代码区:保存所有的方法定义
2.全局数据区:保存static类型的属性
2.堆内存空间:保存了每个对象的具体属性内容
4.栈内存空间:保存所有的对象名称(保存了引用堆内存空间的地址).
static关键词
static方法就是没有this的方法。在static方法内部不能调用非静态方法。
在没有创建任何对象的前提下,可以仅仅通过类本身来调用static方法。