#算法测试学习
##java代码实现简单乘法口诀表
```jpackage demo.dev.pojo;
public class DemoTestT {
public static void main(String[] args) {
/*
* 嵌套for循环打印乘法口诀表
* “\t”:制表符
* “\n":换行符
*/
for (int i = 1; i < 10; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(i+"*"+j+"="+i*j+"\t");
}
System.out.println();
}
}
}
控制台Console
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
##用递归写出·java代码写出裴波那契数列
在package demo.dev.pojo;
public class TestDemoE {
/*
* 用java代码写出裴波那契数列
* 1,1,2,3,5,8,13,21,34,55
*/
/** 使用递归方法 */
private static long Fib(long i) {
if (i <= 2) {
return 1;
}else {
return Fib(i - 1) + Fib(i - 2);
}
}
public static void main(String[] args) {
System.out.println("斐波那契数列的前10项为:");
for (long j = 1; j <= 10; j++) {
System.out.print(Fib(j) + "\t"); // "\t"是制表符
if (j % 5 == 0) {
System.out.println();
}
}
}
}
控制台Console
斐波那契数列的前10项为:
1 1 2 3 5
8 13 21 34 55
##递归算汉诺塔
在package demo.dev.pojo;
public class DenoTest1 {
/*
* 递归算汉诺塔问题
* 汉诺塔问题 有 p1, p2 ,p3 三个柱子,在p1柱子上面放
* 三个盘子分别为 A1, B2, C1
* 现将三个盘子按照ABC顺序放入 p1柱子上,
* 要求将p1柱子上的盘子不改变顺序,把它们挪到p3柱子上面
*/
public static void hanoi(int n,int p1,int p2,int p3)
{
if(1==n)
System.out.println("盘子从"+p1+"移到"+p3);
else
{
hanoi(n-1,p1,p3,p2);
System.out.println("盘子从"+p1+"移到"+p3);
hanoi(n-1,p2,p1,p3);
}
}
public static void main(String[] args) {
hanoi(3,1,2,3);
}
}
控制台Console
盘子从1移到3
盘子从1移到2
盘子从3移到2
盘子从1移到3
盘子从2移到1
盘子从2移到3
盘子从1移到3
##算法阶乘
package demo.dev.pojo;
import java.math.BigInteger;
import java.util.Scanner;
/**
* ctrl + shift + o : 导包
* @author Admin
* 算法 阶乘 n!
*/
public class Test4 {
public static void main(String[] args) {
System.out.println("输入正整数:");
Scanner sc = new Scanner(System.in);
while(sc.hasNextInt()){
//考虑到698阶乘,通过大数字处理类来处理
BigInteger bt = new BigInteger("1");
int n=sc.nextInt();
for(int i=1;i<=n;i++){
BigInteger b=new BigInteger(String.valueOf(i));
bt=bt.multiply(b);
}
System.out.println(bt);
}
sc.close();
}
}
控制台Console
输入正整数:
5
120
6
720
7
5040
算法的简单练习,如有雷同,敬请海涵!!!