zoukankan      html  css  js  c++  java
  • 每天10道编程题-第三天

    【程序21】   题目:求1+2!+3!+...+20!的和  

    【程序22】   题目:利用递归方法求5!。  
    【程序23】   题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?  

    【程序24】   题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。  

    【程序25】   题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。  

    【程序26】   题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。  

    【程序27】   题目:求100之内的素数  

    【程序28】   题目:对10个数进行排序  

    【程序29】   题目:求一个3*3矩阵对角线元素之和  

    【程序30】   题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。  

    详细如下:

    【程序21】   题目:求1+2!+3!+...+20!的和  

     1 package com.daliu.suanfa3;
     2 
     3 /**
     4  * 【程序21】 题目:求1+2!+3!+...+20!的和
     5  * 
     6  */
     7 public class Ex21 {
     8     static long sum = 0;
     9     static long fac = 0;
    10 
    11     public static void main(String[] args) {
    12         long sum = 0;
    13         long fac = 1;
    14         for (int i = 1; i <= 10; i++) {
    15             fac = fac * i;
    16             sum += fac;
    17         }
    18         System.out.println(sum);
    19     }
    20 }

    【程序22】   题目:利用递归方法求5!。  

     1 package com.daliu.suanfa3;
     2 
     3 import java.util.Scanner;
     4 
     5 /**
     6  * 【程序22】 题目:利用递归方法求5!。
     7  * 
     8  * @author Administrator
     9  * 
    10  */
    11 public class Ex22 {
    12     public static void main(String[] args) {
    13         Scanner s = new Scanner(System.in);
    14         int n = s.nextInt();
    15         System.out.println(recursion(n));
    16 
    17     }
    18 
    19     public static long recursion(int n) {
    20         long value = 0;
    21         if (n == 1 || n == 0) {
    22             value = 1;
    23         } else if (n > 1) {
    24             value = n * recursion(n - 1);
    25         }
    26         return value;
    27     }
    28 
    29 }


    【程序23】   题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大? 

     1 package com.daliu.suanfa3;
     2 
     3 /**
     4  * 【程序23】
     5  * 题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人
     6  * ,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?
     7  * 1.程序分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道第四人的岁数,依次类推,推到第一人(10岁),再往回推。
     8  * 
     9  */
    10 public class Ex23 {
    11 
    12     static int getAge(int n) {
    13         if (n == 1) {
    14             return 10;
    15         }
    16         return 2 + getAge(n - 1);
    17     }
    18 
    19     public static void main(String[] args) {
    20         System.out.println("第五个的年龄为:" + getAge(5));
    21     }
    22 }

    【程序24】   题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。  

     1 package com.daliu.suanfa3;
     2 
     3 import java.util.Scanner;
     4 
     5 /**
     6  * 【程序24】 题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
     7  * 
     8  */
     9 public class Ex24 {
    10     public static void main(String[] args) {
    11         Ex24 tn = new Ex24();
    12         Scanner s = new Scanner(System.in);
    13         long a = s.nextLong();
    14         if (a < 0 || a > 100000) {
    15             System.out.println("Error Input, please run this program Again");
    16             System.exit(0);
    17         }
    18         if (a >= 0 && a <= 9) {
    19             System.out.println(a + "是一位数");
    20             System.out.println("按逆序输出是" + '
    ' + a);
    21         } else if (a >= 10 && a <= 99) {
    22             System.out.println(a + "是二位数");
    23             System.out.println("按逆序输出是");
    24             tn.converse(a);
    25         } else if (a >= 100 && a <= 999) {
    26             System.out.println(a + "是三位数");
    27             System.out.println("按逆序输出是");
    28             tn.converse(a);
    29         } else if (a >= 1000 && a <= 9999) {
    30             System.out.println(a + "是四位数");
    31             System.out.println("按逆序输出是");
    32             tn.converse(a);
    33         } else if (a >= 10000 && a <= 99999) {
    34             System.out.println(a + "是五位数");
    35             System.out.println("按逆序输出是");
    36             tn.converse(a);
    37         }
    38     }
    39 
    40     public void converse(long l) {
    41         String s = Long.toString(l);
    42         char[] ch = s.toCharArray();
    43         for (int i = ch.length - 1; i >= 0; i--) {
    44             System.out.print(ch[i]);
    45         }
    46     }
    47 }

    【程序25】   题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。  

     1 package com.daliu.suanfa3;
     2 
     3 import java.util.Scanner;
     4 /**
     5  * 【程序25】   题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。   
     6  *
     7  */
     8 public class Ex25 {
     9     static int[] a = new int[5];
    10     static int[] b = new int[5];
    11 
    12     public static void main(String[] args) {
    13         boolean is = false;
    14         Scanner s = new Scanner(System.in);
    15         long l = s.nextLong();
    16         if (l > 99999 || l < 10000) {
    17             System.out.println("Input error, please input again!");
    18             l = s.nextLong();
    19         }
    20         for (int i = 4; i >= 0; i--) {
    21             a[i] = (int) (l / (long) Math.pow(10, i));
    22             l = (l % (long) Math.pow(10, i));
    23         }
    24         System.out.println();
    25         for (int i = 0, j = 0; i < 5; i++, j++) {
    26             b[j] = a[i];
    27         }
    28         for (int i = 0, j = 4; i < 5; i++, j--) {
    29             if (a[i] != b[j]) {
    30                 is = false;
    31                 break;
    32             } else {
    33                 is = true;
    34             }
    35         }
    36         if (is == false) {
    37             System.out.println("is not a Palindrom!");
    38         } else if (is == true) {
    39             System.out.println("is a Palindrom!");
    40         }
    41     }
    42 }

    【程序26】   题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。  

      1 package com.daliu.suanfa3;
      2 
      3 import java.util.Scanner;
      4 /**
      5  * 【程序26】   题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,
      6  * 则继续   判断第二个字母。     
      7  *
      8  */
      9 public class Ex26 {
     10     public static void main(String[] args) {
     11         // 保存用户输入的第二个字母
     12         char weekSecond;
     13         // 将Scanner类示例化为input对象,用于接收用户输入
     14         Scanner input = new Scanner(System.in);
     15         // 开始提示并接收用户控制台输入
     16         System.out.print("请输入星期值英文的第一个字母,我来帮您判断是星期几:");
     17         String letter = input.next();
     18         // 判断用户控制台输入字符串长度是否是一个字母
     19         if (letter.length() == 1) {
     20             // 利用取第一个索引位的字符来实现让Scanner接收char类型输入
     21             char weekFirst = letter.charAt(0);
     22             switch (weekFirst) {
     23             case 'm':
     24                 // 当输入小写字母时,利用switch结构特性执行下一个带break语句的case分支,以实现忽略用户控制台输入大小写敏感的功能
     25             case 'M':
     26                 System.out.println("星期一(Monday)");
     27                 break;
     28             case 't':
     29                 // 当输入小写字母时,利用switch结构特性执行下一个带break语句的case分支,以实现忽略用户控制台输入大小写敏感的功能
     30             case 'T':
     31                 System.out
     32                         .print("由于星期二(Tuesday)与星期四(Thursday)均以字母T开头,故需输入第二个字母才能正确判断:");
     33                 letter = input.next();
     34                 // 判断用户控制台输入字符串长度是否是一个字母
     35                 if (letter.length() == 1) {
     36                     // 利用取第一个索引位的字符来实现让Scanner接收char类型输入
     37                     weekSecond = letter.charAt(0);
     38                     // 利用或(||)运算符来实现忽略用户控制台输入大小写敏感的功能
     39                     if (weekSecond == 'U' || weekSecond == 'u') {
     40                         System.out.println("星期二(Tuesday)");
     41                         break;
     42                         // 利用或(||)运算符来实现忽略用户控制台输入大小写敏感的功能
     43                     } else if (weekSecond == 'H' || weekSecond == 'h') {
     44                         System.out.println("星期四(Thursday)");
     45                         break;
     46                         // 控制台错误提示
     47                     } else {
     48                         System.out.println("输入错误,不能识别的星期值第二个字母,程序结束!");
     49                         break;
     50                     }
     51                 } else {
     52                     // 控制台错误提示
     53                     System.out.println("输入错误,只能输入一个字母,程序结束!");
     54                     break;
     55                 }
     56             case 'w':
     57                 // 当输入小写字母时,利用switch结构特性执行下一个带break语句的case分支,以实现忽略用户控制台输入大小写敏感的功能
     58             case 'W':
     59                 System.out.println("星期三(Wednesday)");
     60                 break;
     61             case 'f':
     62                 // 当输入小写字母时,利用switch结构特性执行下一个带break语句的case分支,以实现忽略用户控制台输入大小写敏感的功能
     63             case 'F':
     64                 System.out.println("星期五(Friday)");
     65                 break;
     66             case 's':
     67                 // 当输入小写字母时,利用switch结构特性执行下一个带break语句的case分支,以实现忽略用户控制台输入大小写敏感的功能
     68             case 'S':
     69                 System.out
     70                         .print("由于星期六(Saturday)与星期日(Sunday)均以字母S开头,故需输入第二个字母才能正确判断:");
     71                 letter = input.next();
     72                 // 判断用户控制台输入字符串长度是否是一个字母
     73                 if (letter.length() == 1) {
     74                     // 利用取第一个索引位的字符来实现让Scanner接收char类型输入
     75                     weekSecond = letter.charAt(0);
     76                     // 利用或(||)运算符来实现忽略用户控制台输入大小写敏感的功能
     77                     if (weekSecond == 'A' || weekSecond == 'a') {
     78                         System.out.println("星期六(Saturday)");
     79                         break;
     80                         // 利用或(||)运算符来实现忽略用户控制台输入大小写敏感的功能
     81                     } else if (weekSecond == 'U' || weekSecond == 'u') {
     82                         System.out.println("星期日(Sunday)");
     83                         break;
     84                         // 控制台错误提示
     85                     } else {
     86                         System.out.println("输入错误,不能识别的星期值第二个字母,程序结束!");
     87                         break;
     88                     }
     89                 } else {
     90                     // 控制台错误提示
     91                     System.out.println("输入错误,只能输入一个字母,程序结束!");
     92                     break;
     93                 }
     94             default:
     95                 // 控制台错误提示
     96                 System.out.println("输入错误,不能识别的星期值第一个字母,程序结束!");
     97                 break;
     98             }
     99         } else {
    100             // 控制台错误提示
    101             System.out.println("输入错误,只能输入一个字母,程序结束!");
    102         }
    103     }
    104 }

    【程序27】   题目:求100之内的素数  

     1 package com.daliu.suanfa3;
     2 /**
     3  * 【程序27】   题目:求100之内的素数 
     4  *
     5  */
     6 public class Ex27 {
     7     public static void main(String args[]) {
     8         int sum, i;
     9         for (sum = 2; sum <= 100; sum++) {
    10             for (i = 2; i <= sum / 2; i++) {
    11                 if (sum % i == 0)
    12                     break;
    13             }
    14             if (i > sum / 2)
    15                 System.out.println(sum + "是素数");
    16         }
    17     }
    18 }

    【程序28】   题目:对10个数进行排序  

     1 package com.daliu.suanfa3;
     2 
     3 import java.util.Arrays;
     4 import java.util.Random;
     5 import java.util.Scanner;
     6 /**
     7  * 【程序28】   题目:对10个数进行排序  
     8  * @author Administrator
     9  *
    10  */
    11 
    12 public class Ex28 {
    13     public static void main(String[] args) {
    14         int arr[] = new int[11];
    15         Random r = new Random();
    16         for (int i = 0; i < 10; i++) {
    17             arr[i] = r.nextInt(100) + 1;// 得到10个100以内的整数
    18         }
    19         Arrays.sort(arr);
    20         for (int i = 0; i < arr.length; i++) {
    21             System.out.print(arr[i] + "	");
    22         }
    23         System.out.print("
    Please Input a int number: ");
    24         Scanner sc = new Scanner(System.in);
    25         arr[10] = sc.nextInt();// 输入一个int值
    26         Arrays.sort(arr);
    27         for (int i = 0; i < arr.length; i++) {
    28             System.out.print(arr[i] + "	");
    29         }
    30     }
    31 }

    【程序29】   题目:求一个3*3矩阵对角线元素之和  

     1 package com.daliu.suanfa3;
     2 /**
     3  * 【程序29】   题目:求一个3*3矩阵对角线元素之和   
     4  * @author Administrator
     5  *
     6  */
     7 public class Ex29 {
     8     public static void main(String[] args) {
     9         double sum = 0;
    10         int array[][] = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 7, 8 } };
    11         for (int i = 0; i < 3; i++)
    12             for (int j = 0; j < 3; j++) {
    13                 if (i == j)
    14                     sum = sum + array[i][j];
    15             }
    16         System.out.println(sum);
    17     }
    18 }

    【程序30】   题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。 

     1 package com.daliu.suanfa3;
     2 
     3 import java.util.Random;
     4 /**
     5  * 【程序30】   题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。   
     6  *
     7  */
     8 public class Ex30 {
     9     public static void main(String[] args) {
    10         int temp = 0;
    11         int myarr[] = new int[12];
    12         Random r = new Random();
    13         for (int i = 1; i <= 10; i++)
    14             myarr[i] = r.nextInt(1000);
    15         for (int k = 1; k <= 10; k++)
    16             System.out.print(myarr[k] + ",");
    17         for (int i = 1; i <= 9; i++)
    18             for (int k = i + 1; k <= 10; k++)
    19                 if (myarr[i] > myarr[k]) {
    20                     temp = myarr[i];
    21                     myarr[i] = myarr[k];
    22                     myarr[k] = temp;
    23                 }
    24         System.out.println("");
    25         for (int k = 1; k <= 10; k++)
    26             System.out.print(myarr[k] + ",");
    27 
    28         myarr[11] = r.nextInt(1000);
    29         for (int k = 1; k <= 10; k++)
    30             if (myarr[k] > myarr[11]) {
    31                 temp = myarr[11];
    32                 for (int j = 11; j >= k + 1; j--)
    33                     myarr[j] = myarr[j - 1];
    34                 myarr[k] = temp;
    35             }
    36         System.out.println("");
    37         for (int k = 1; k <= 11; k++)
    38             System.out.print(myarr[k] + ",");
    39     }
    40 }
  • 相关阅读:
    2020总结来了,文末有福利
    CentOS 用户请关注,你期待的 CentOS Linux 9 再也不会来了
    全球最好的10款波尔多葡萄酒,拉菲居然垫底
    eth以太坊合约开发工具集
    html格式的文字去掉html tag转为纯text文字
    如何隐藏X-Powered-By
    aiXcoder3.0呼之欲出,代码补全 AI,带你进入「个性化智能编程时代」
    windows故障群集修改心跳网卡【原创】
    keepalived非争抢机制不生效报错Received lower prio advert, forcing new election
    MySQL主从复制,启动slave时报错1872 Slave failed to initialize relay log info structure from the repository
  • 原文地址:https://www.cnblogs.com/liuhongfeng/p/4136637.html
Copyright © 2011-2022 走看看