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);
}
}
这个题目不难
- 编写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类型的方法在对象未被实例化时就可以被类名所调用。