package cn.tedu.practice;
//题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
public class Practice0 {
public static void main(String[] args) {
int a = 2;
int b = 1;
double sum = 0;
for(int i=0;i<20;i++){
sum = sum + (double)a/b;
a = a + b;
b = a - b;
}
System.out.println("这个数列前20项之和为:"+sum);
}
}
package cn.tedu.practice;
//题目:求1+2!+3!+...+20!的和
public class Practice1 {
public static void main(String[] args) {
long a = 1;
long sum = 0;
for(int i=1;i<=20;i++){
a = a*i;
sum = sum + a;
}
System.out.println("和为:"+sum);
}
}
package cn.tedu.practice;
//题目:利用递归方法求5!
public class Practice2 {
public static void main(String[] args) {
int n = 5;
Rec r = new Rec();
System.out.println(n+"!="+r.rec(n));
}
}
//递归算法,将大问题拆解成小问题,此处写法类似将循环拆解
class Rec{
long sum;
public long rec(int n){
if(n==1){
sum = 1;
}else{
sum = n * rec(n-1);
}
return sum;
}
}
package cn.tedu.practice;
//题目:有5个人坐在一起
// 问第五个人多少岁?他说比第4个人大2岁
// 问第4个人岁数,他说比第3个人大2岁
// 问第三个人,又说比第2人大两岁
// 问第2个人说比第一个人大两岁。最后问第一个人,他说是10岁
// 请问第五个人多大?
public class Practice3 {
public static void main(String[] args) {
int age = 10;
for(int i=1;i<5;i++){
age+=2;
}
System.out.println("第五个人"+age+"岁");
}
}
package cn.tedu.practice;
import java.util.Scanner;
//题目:给一个不多于长整型的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
public class Practice4 {
public static void main(String[] args) {
System.out.println("请输入一个随机正整数");
long a = new Scanner(System.in).nextLong();
long n;
for(int i=1;i<=18;i++){
n = a % 10;
System.out.print(n);
if(a/10==0){
System.out.println();
System.out.println(a+"是一个"+i+"位数");
break;
}else{
a = a / 10;
}
}
}
}
package cn.tedu.practice;
import java.util.Scanner;
//题目:输入一个随机正整数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同
public class Practice5 {
public static void main(String[] args) {
System.out.println("请输入一个随机正整数");
long l = new Scanner(System.in).nextLong();
String s = String.valueOf(l);
char[] c = s.toCharArray();
for(int i=0;i<c.length/2;i++){
if (c[i] != c[c.length-i-1]) {
System.out.println(l+"不是回文数");
return;
}
}
System.out.println(l+"是回文数");
}
}
package cn.tedu.practice;
import java.util.Arrays;
import java.util.Scanner;
//题目:对10个数进行排序
public class Practice6 {
public static void main(String[] args) {
int[] a = new int[10];
for(int i=0;i<a.length;i++){
System.out.println("请输入第"+(i+1)+"个整数");
a[i] = new Scanner(System.in).nextInt();
}
for(int i=1;i<a.length;i++){
for(int j=0;j<a.length-i;j++){
int k = a[j];
if(a[j]>a[j+1]){
a[j] = a[j+1];
a[j+1] = k;
}
}
System.out.println(Arrays.toString(a));
}
System.out.println(Arrays.toString(a));
}
}
package cn.tedu.practice;
import java.util.Scanner;
//题目:求一个3*3矩阵对角线元素之和
public class Practice7 {
static Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
int[][] a = new int[3][3];
int b = 1;
for(int i=0;i<3;i++){
for(int j=0;j<3;j++){
System.out.println("请输入第"+b+"个正整数");
a[i][j] = sc.nextInt();
b++;
}
}
System.out.println("您输入的3*3矩阵是:");
for(int i=0;i<3;i++){
for(int j=0;j<3;j++){
System.out.print(a[i][j]+"\t");
}
System.out.println();
}
int sum = 0;
for(int i=0;i<3;i++) {
for (int j = 0; j < 3; j++) {
if (i==j){
sum = sum + a[i][j];
break;
}
}
}
System.out.println("这个矩阵的对角线之和为:"+sum);
}
}
package cn.tedu.practice;
import java.util.Arrays;
import java.util.Scanner;
//题目:将一个数组逆序输出
public class Practice9 {
public static void main(String[] args) {
int[] a = new int[20];
for(int i=0;i<a.length;i++){
System.out.println("请输入第"+(i+1)+"个正整数");
a[i] = new Scanner(System.in).nextInt();
}
System.out.println("您输入的数组为:"+ Arrays.toString(a));
for(int i=0;i<a.length/2;i++){
int x = a[i];
a[i] = a[a.length-i-1];
a[a.length-i-1] = x;
}
System.out.println("这个数组逆序输出的结果是:"+Arrays.toString(a));
}
}