内嵌数据类型:
char、byte/short/int/long、float/double、boolean、string
类型转换;
程序:
1. 计算ax^2 + bx + c = 0的根;
程序:
package com.shiyanlou;
import edu.princeton.cs.introcs.StdIn;
import edu.princeton.cs.introcs.StdOut;
public class Root {
public static void main(String[] args) {
// TODO Auto-generated method stub
double a = StdIn.readDouble();
double b = StdIn.readDouble();
double c = StdIn.readDouble();
double discriminant = b*b - 4*a*c;
double root1 = (-b + Math.sqrt(discriminant))/(2*a);
double root2 = (-b - Math.sqrt(discriminant))/(2*a);
StdOut.println("root1 = " + root1);
StdOut.println("root2 = " + root2);
}
}
执行:
2. 计算点(x,y)到(0,0)的欧拉距离;
程序:
package com.shiyanlou;
import edu.princeton.cs.introcs.StdIn;
import edu.princeton.cs.introcs.StdOut;
public class Distance {
public static void main(String[] args) {
// TODO Auto-generated method stub
double x = StdIn.readDouble();
double y = StdIn.readDouble();
double dist = Math.sqrt(x*x + y*y);
StdOut.println("distance = " + dist);
}
}
执行:
3. 计算两个1~6之间的随机整数的和;
程序:
package com.shiyanlou;
import edu.princeton.cs.introcs.StdOut;
public class SumOfTwoDices {
public static void main(String[] args) {
int SIDES = 6;
int dice1 = (int)(Math.random() * SIDES) + 1;
int dice2 = (int)(Math.random() * SIDES) + 1;
StdOut.println(dice1+dice2);
}
}
执行:
4. 日期在3/20~6/20为春季,输入一个日期(m-d),若是春季,为真;否则为假;
程序:
package com.shiyanlou;
import edu.princeton.cs.introcs.StdIn;
import edu.princeton.cs.introcs.StdOut;
public class SpringSeason {
public static void main(String[] args) {
// TODO Auto-generated method stub
int m = StdIn.readInt();
int d = StdIn.readInt();
boolean isSpring = (m == 3 && (d >= 20 && d <= 31)) || (m == 4 && (d >= 1 && d <= 30))
|| (m == 5 && (d >= 1 && d <= 31)) || (m == 6 && (d >= 1 && d <= 20));
StdOut.println(isSpring);
}
}
执行:
5. 将笛卡尔坐标系的点(x,y)转换为极坐标(r, θ);
程序:
package com.shiyanlou;
import edu.princeton.cs.introcs.StdIn;
import edu.princeton.cs.introcs.StdOut;
public class CartesianToPolar {
public static void main(String[] args) {
// TODO Auto-generated method stub
double x = StdIn.readDouble();
double y = StdIn.readDouble();
double r = Math.sqrt(x*x + y*y);
double theta = Math.atan2(y, x);
StdOut.println("polar = (" + r + "," + theta + ")");
}
}
执行:
6. 计算一个日期(y-m-d)对应的星期。公式:
d0∈{0,1,2,3,4,5,6}分别对应星期日~星期六。
程序:
package com.shiyanlou;
import edu.princeton.cs.introcs.StdIn;
import edu.princeton.cs.introcs.StdOut;
public class DayOfWeek {
public static void main(String[] args) {
// TODO Auto-generated method stub
String[] a = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
int y = StdIn.readInt();
int m = StdIn.readInt();
int d = StdIn.readInt();
int y0 = y - (14-m)/12;
int x = y0 + y0/4-y0/100+y0/400;
int m0 = m + 12*((14-m)/12) - 2;
int d0 = (d + x + (31*m0)/12) % 7;
StdOut.println(a[d0]);
}
}
执行:
7. 统计5个0~1的随机数的最小值、最大值、平均值、标准差;
程序:
package com.shiyanlou;
import edu.princeton.cs.introcs.StdOut;
public class Stats5 {
public static void main(String[] args) {
// TODO Auto-generated method stub
double a = Math.random();
double b = Math.random();
double c = Math.random();
double d = Math.random();
double e = Math.random();
double max = Math.max(Math.max(Math.max(Math.max(a, b), c), d), e);
double min = Math.min(Math.min(Math.min(Math.min(a, b), c), d), e);
double avg = (a+b+c+d+e)/5.0;
double std = Math.sqrt((a-avg)*(a-avg) + (b-avg)*(b-avg) + (c-avg)*(c-avg) + (d-avg)*(d-avg) + (e-avg)*(e-avg));
StdOut.println("max = " + max);
StdOut.println("min = " + min);
StdOut.println("avg = " + avg);
StdOut.println("std = " + std);
}
}
执行:
8.
0~3阶分别对应,规则是第n阶字符串为第n-1阶字符串+F+逆序(第n-1阶字符串)。
求任意n阶对应字符串。
程序:
package com.shiyanlou;
import edu.princeton.cs.introcs.StdIn;
import edu.princeton.cs.introcs.StdOut;
public class Dragon {
public static void main(String[] args) {
// TODO Auto-generated method stub
int N = StdIn.readInt();
String start = "F";
String left = start;
String right = start;
for (int i = 0; i < N; i++) {
left = left + "L" + right;
right = left + "R" + right;
}
StdOut.println(left);
}
}
执行:
9. 输入一个年份(year),判断是否是闰年;
程序:
package com.shiyanlou;
import edu.princeton.cs.introcs.StdIn;
import edu.princeton.cs.introcs.StdOut;
public class LeapYear {
public static void main(String[] args) {
// TODO Auto-generated method stub
int year = StdIn.readInt();
StdOut.println((year % 400 == 0) || (year % 4 == 0 && year % 100 != 0));
}
}
执行: