1.//输出昨天的此刻时间
Calendar cal = Calendar.getInstance();
System.out.println(Calendar.DATE);//5
cal.add(Calendar.DATE, -1);
Date time = cal.getTime();
System.out.println(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(time));
2.//打印出一段字符串中的数字
String str = "iu7i8hy4jnb2";
Pattern p = Pattern.compile( "\\d");
Matcher matcher = p.matcher( str );
while ( matcher.find() ) {
System.out.print(matcher.group());//7842
}
3.//判断某年份是否为闰年
年份能被4整除但是不能被100整除的或者是能被400整除的年称之为闰年。
public static void leapYear(){
Scanner in = new Scanner(System.in);
System.out.println("请输入年份:");
while(in.hasNext()){
int year = in.nextInt();
if((year % 4 == 0 && year % 100 != 0) || year%400 == 0){
System.out.println(year + "年是闰年!");
}else{
System.out.println(year + "年不是闰年!");
}
}
}
4.1//阶乘
在表达阶乘时,就使用“!”来表示。如n阶乘,就表示为n!
public static void factorial(int num){
int n = 1;
for (int i = 1; i <= num; i++) {
n = n * i;
}
System.out.println(n);
}
4.2//阶乘求和
输出1!+2!+3!+…+num!的和
public void factorial(int num){
int sum = 0;
int n = 1;
for (int i = 1; i <= num; i++) {
n = n * i;
sum = sum + n;
}
System.out.println("sum:" + sum);
}
5.//递归算法-斐波那契数列的问题--每隔三个月生一窝兔子
古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("请输入月数:");
while(in.hasNext()){
int month = in.nextInt();
System.out.println("第" +month+ "个月的兔子总数是:" + rabbit(month));
}
}//main
public static int rabbit(int months){
if(months < 3){
return 1;
}else{
return rabbit(months - 1) + rabbit(months - 2);
}
}
6.//判断并且输出素数个数
素数,也叫质数,只能被1和本身整出的数
//num以内的素数
public static void prime(int num){
int count = 0;
for(int i = 2;i<= num;i++){
if(isSuShu(i)){
System.out.print(i + " ");
count ++ ;
}
}
System.out.println();
System.out.println("共有" + count + "个素数");
}
//判断是否为素数
public static boolean isSuShu(int num){
for (int i = 2; i < num; i++) {
if(num % i == 0){
return false;
}
}
return true;
}
7.//打印出所有的水仙花数
所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 "水仙花数 ",因为 153=1*1*1+5*5*5+3*3*3。(153、370、371、407)
public static void daffodilsNumber(){
int a,b,c,sum;
for (int i = 100; i < 1000; i++) {
a = i / 100;//百位
b = (i - 100*a) / 10;
c = i % 10;//个位
sum = a*a*a + b*b*b + c*c*c;
if(sum == i){
System.out.println(i);
}
}
}
8.//输入一个正整数分解质因数。如:输入90,输出90=2*3*3*5
思路:
1.用一个for循环遍历一个从 k=2 开始查找到 k<=n 的数
2.当 n%k==0 的时候,输出 k 的值
3.然后把 n 的值递归一下,即 n=n/k;
4.这个时候要把 for 循环重新执行,即k=2;
1.用一个for循环遍历一个从 k=2 开始查找到 k<=n 的数
2.当 n%k==0 的时候,输出 k 的值
3.然后把 n 的值递归一下,即 n=n/k;
4.这个时候要把 for 循环重新执行,即k=2;
public static void num(){
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数:");
int n = sc.nextInt();
System.out.println(n + "=");
for (int i = 2; i <= n/2; i++) {
if(n % i ==0){
System.out.println(i + "*");
n =n /i;
i = 2;
}
}
System.out.println(n);
}
8.//条件运算符
学习成绩> =90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。这里涉及里一个知识点就是条件运算符。
public static void core(){
System.out.print("请输入整数成绩:");
Scanner sc = new Scanner(System.in);
char s;
while(sc.hasNext()){
int core = sc.nextInt();
s = core>=90?'A' : core>=60?'B':'C';
System.out.println(s);
}
}