JAVA基础练习题
作业:
1.输出1~100内前5个可以被3整除的数。
2.打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。*例如:153是一个 "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方。
3.计算2000年1月1日到2008年1月1日相距多少天。
4.用for循环求2+22+222+2222+22222+…的和。
代码如下:
public class Day02_homework {
//作业三
public int year(int y1,int y2){
if (((y1%4==0&&y1%100!=0)||(y1%4==0&&y1%100!=0))||((y2%4==0&&y2%100!=0)||(y2%4==0&&y2%100!=0))){//判断是否为闰年
if (y1>y2){
int y=(y1-y2);//年份差×365,再对4整除,其中有几个闰年就多+1天
return y*365+y/4;
}else {
int y=(y2-y1);
return y*365+y/4;
}
}else {
if (y1>y2){
int y=(y1-y2);
return y*365;
}else {
int y=(y2-y1);
return y*365;
}
}
}
public int month(int m1,int m2){
//月份统一用30天(后期回学Date和calendar方法)
if (m1>m2){
int m=(m1-m2)*30;
return m;
}else {
int m=(m2-m1)*30;
return m;
}
}
public int day(int d1,int d2){
if (d1>d2){
int d=d1-d2;
return d;
}else {
int d=d2-d1;
return d;
}
}
public static void main(String[] args) {
//作业一
int j=0;
for (int i=1;i<=100;i++){
if (i%3==0){
j++;//如果满足可以整除3的条件,j加一,以便取出前五个数
System.out.println(i);
if (j==5){//加一个条件判断只取前5个
break;
}
}
}
//作业二
for (int i=100;i<1000;i++){
//个位
int a=i%10;
//十位
int b=i%100/10;
// 百位
int c=i/100;
if (i==a*a*a+b*b*b+c*c*c)
{
System.out.println(i);
}
}
//作业三的输出
Day02_homework cha=new Day02_homework();
System.out.println(cha.year(2008,2000)+cha.month(12,12)+cha.day(1,1));
//作业四
//2+22+222的规律为0x10+2=2,2x10+2=22,22x10+22=222
int j=0;
int a=0;
for (int i=0;i<=2;i++){
a=(a*10)+2;//找出规律,求出每一项
j+=a;//每一项进行加和
}
System.out.println(j);
//作业四 方法二
String x="2";int num=0;
for (int i=0;i<4;i++){
num=num+Integer.parseInt(x);//将字符串2变为数字2进行加和
//将2看做字符串,每下一项在2后面再加一个2,连接起来为22,222,22222
x=x+"2";//字符串连接并非算数运算,求每一项
System.out.println(num);
}
}
}