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); } }