public class MainActivity extends AppCompatActivity {
EditText mynum; Button start,start2,start3; TextView end; String str=""; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mynum = (EditText) findViewById(R.id.num); start = (Button) findViewById(R.id.start1); start2 = (Button) findViewById(R.id.start2); start3 = (Button) findViewById(R.id.start3); end = (TextView) findViewById(R.id.end); //杨辉三角 start.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String s = mynum.getText().toString(); int num = Integer.parseInt(s); if (num > 0) { int[][] a = new int[num][num]; // 将每行的第一个数和最后一个数都赋为1 for (int i = 0; i < num; i++) { a[i][0] = 1; a[i][i] = 1; } // 当行数大于2的时候就可以使用递推公式 if (num > 2) { // 依次将中间某个数的值赋为其上面紧邻着的两个数的和 for (int i = 2; i < num; i++) { for (int j = 1; j < num - 1; j++) { a[i][j] = a[i - 1][j - 1] + a[i - 1][j]; } } } // 依次输出这些数 for (int i = 0; i < num; i++) { str+= "\n"; //输出数字前的空格,每行输出的空格数量为:num-1-i for (int j = i; j < num - 1; j++) { //System.out.print(" "); str+= " "; } // 开始输出具体的数字以及数字之间的空格 for (int j = 0; j < i + 1; j++) { //System.out.print(a[i][j] + " "); str+= a[i][j] + " "; } System.out.println(); } } end.setText(str); str=""; } }); start2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String s = mynum.getText().toString(); int num = Integer.parseInt(s); int i = testFibonacci3(num); end.setText(i+""); str=""; } }); start3.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String s = mynum.getText().toString(); int num = Integer.parseInt(s); long factorial = factorial(num); end.setText(factorial+""); str=""; } }); } //斐波那契 public static int testFibonacci3(int n) { if (n == 1 || n == 2) { return 1; }else { return testFibonacci3(n-1) + testFibonacci3(n-2); } } //递归阶乘 public int factorial(int m) { if (m < 0) { return 0; } else if ( m == 1){ return 1; } else if (m > 1) { return m * factorial(m - 1); } return 0; } }