您的位置:首页 > 编程语言 > Java开发

java第二次作业

2013-03-18 09:49 429 查看






1.编写一个程序,以"年 月 日"作为输入,输出该日期是星期几。参数输入,月份用数字表示,一月输入1,二月输入2,以此类推。输出结果,0表示星期天,1表示星期一,2表示星期二,以此类推。提示,如下公式可以计算任意一天是星期几,我们所说的公历按照Gregorian
calendar计算。

import java.io.IOException;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws IOException {
Scanner sin = new Scanner(System.in);
int year = sin.nextInt();
int month = sin.nextInt();
int day = sin.nextInt();
int a = (14 - month) / 12;
int y = year - a;
int m = month + 12 * a - 2;
int d = (day + y + y / 4 - y / 100 + y / 400 + 31 * m / 12) % 7;
System.out.println(d);
}
}


2.请写一个程序来输出生成龙曲线的指令。程序输出0-6阶的曲线指令即可。指令是字符集F,L和R的组合。这里的F是指“向前移动一个单元并画直线”,L意思是左转,R指右转。

你可以想象为把一张纸条沿对角线折叠N次,画上直线印痕后展开得到的图形。实际上,第N次迭代后,其指令字符串实际上相当于(第N-1次指令)加上 L 再加上(第N-1次指令的反向移动)。

以第1次为例,其指令为FLF,其反向后为 FRF (从右往左读,并且把L换成R),则第二次指令为: FLFLFRF

public class Main {
public static void main(String[] args) {
String [] str = new String[8];
String f = "F" ;
str[0] = "F" ;
for (int i = 0; i <=6; i++) {
System.out.println(str[i]);
str[i+1] = str[i] + "L" + f ;
f = str[i] + "R" + f ;
}
}
}


3.IP地址常用的表示方法是a.b.c.d的形式。例如,北京大学主页的ip地址是162.105.131.113。其实IP地址还可以用一个长整数m来表示,它与a.b.c.d的关系是

m=(((a*256+b)*256+c)*256+d

例如,北大主页的地址也可以表示为2724823921L,或者用16进制表示为0xa2698371L。数字后面的L表示是长整数类型。

你可以在windows下验证这种表示方式:在浏览器地址栏里输入2724823921,IE会自动转换成162.105.131.113并访问该网站。参考

请编写一个程序,将a.b.c.d的表示方法转换成长整数表示。

import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sin = new Scanner(System.in);
String ip = sin.next();
String[] ips = ip.split("\\.");
int a = Integer.parseInt(ips[0]);
int b = Integer.parseInt(ips[1]);
int c = Integer.parseInt(ips[2]);
int d = Integer.parseInt(ips[3]);
long m = ((long) (a * 256 + b) * 256 + c) * 256 + d;
System.out.println(m);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: