你的位置:首页 > Java教程

[Java教程]初学Java:整理的几个简单小程序以及初学心得


整理这几天里写的几个小程序,都是循环练习
//设N是一个四位数,它的9倍恰好是其反序数
//(例如:1234的反序数是4321),求N值
package Azhi;
public class Job_5 {
public static void main(String[] args) {
for(int n=1000;n<=9999;n++){
int ge=n%10;
int shi=n%100/10;
int bai=n%1000/100;
int qian=n/1000;
int temp=ge*1000+shi*100+bai*10+qian;//求出反序数
if(temp==n*9){ //它的9倍恰好是其反序数
System.out.println(n);
}
}
}
}

/*打印出所有的 "水仙花数 ",
* 所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。
*例如:153是一个 "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方*/
package Azhi;
public class Job_6 {
public static void main(String[] args) {
for(int i=100;i<999;i++){
int g=i%10;
int s=i%100/10;
int b=i/100;
int temp=g*g*g+s*s*s+b*b*b;//三位数的各位数字立方和等于该数本身
if(temp==i){
System.out.print("\t"+i);
}
}
}
}

// 计算1-2+3-4+5-.......+99-100的结果
package Azhi;
public class Job_7 {
public static void main(String[] args) {
int sum=0,sum1=0,sum2=0;
for(int i=1;i<=100;i++){
if(i%2==0){ //偶数做减法
sum1-=i;
}else {
sum2+=i; //奇数做加法
}
}
sum=sum1+sum2;
System.out.print(sum);
}
}

//求 2/1+3/2+5/3+8/5+13/8.....前20项之和
package Azhi;
public class Job_8 {
public static void main(String[] args) {
int i=0;
double x=2.0, y=1.0,z=0.0;
double sum = 0;
for (i=1;i<=20;i++){
sum=sum+x/y;
z=x;
x=x+y;
y=z;
}
System.out.print(sum);
}
}

// 输出9*9乘法表
package Azhi;
public class Job_9 {
public static void main(String[] args) {
for(int x=1;x<=9;x++){
for(int y=1;y<=x;y++){
System.out.print("\t"+y+"×"+x+"="+y*x);
}
System.out.println();
}
}
}

/*使用while循环
计算1-1000之间7的倍数和带有7的数字之和 7 14 17 21 27 28...*/
package Azhi;
public class Seven100 {
public static void main(String[] args) {
int i=0;
int sum=0;
while(i<=1000){
int ge=i%10;
int shi=i/10%10;
int bai=i/100;
if(i%7==0||ge==7||shi==7||bai==7){
sum+=i;
}
i++;
}
System.out.println(sum);
}
}

  这几天编写的都是比较简单的小程序,但是对于我这样的初学者来说,这些小程序是很不错的,首先练习了基础语法,其次通过这些小程序,加强自己对程序的认知和理解。这几天编写这几个简单的程序,我还是存在不小问题。就拿这个题“求 2/1+3/2+5/3+8/5+13/8.....前20项之和”来说,开始我找了很久都没找到这个题的规律,找不到规律就写不出表达式,后来想了很久实在想不到就去百度了,然后度娘给我说很简单,我也发现的确很简单,我开始却想不到,可能更多的是自己练习的还比较少,对于这种题目见得不多,缺乏意识。

  再有99乘法表的输出,开始我写的内循环是for(int y=1;y<=9;y++),现在看来很明显输出一个矩形,但是当时就想不明白,说白了还是理解不足,还是旁边的哥们儿给我说了那里要写成y<x,因为它在X内部循环。

  这几天的学习,我总体感觉这个需要勤加练习,方能孰能生巧。比如之前我写那个计算某年某月的天数,主要就是个闰年的判断,整个程序我写的很多,看起来很杂,很乱,但是老师讲的时候,简单几句就完了,又回到刚才说的,多练,多做,经验很重要。