基础算法题


😭基础算法题🤣

算法题的意义不在于你是否全部都能实现,而是在于慢慢培养编程的逻辑思维.

学会站在某种编程语言的角度去思考这些题.本质上它和具体的编程语言是无关的.

如果没有语法基础的学生,不妨可以写写解题思路也是可以的

⭐️⭐️⭐️⭐️题

难度系数⭐️

  1. 给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字.

    123/10 = 12  count++
    12/10 = 1    count++
    1/10 = 0     count++
    
    1. 一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同

    数字和它逆序得到的数字进行比较,如果为true,则是回文.

  2. 打印出所有的 “水仙花数 “

    所谓 “水仙花数 “是指一个三位数,其各位数字立方和等于该数本身。

    例如:153是一个 “水仙花数 “,因为153=1的三次方+5的三次方+3的三次方

  3. 一个数如果恰好等于它的因子之和,这个数就称为 “完数 “。

    例如6=1+2+3.编程找出1000以内的所有完数

🌙🌙🌙🌙题

难度系数⭐️⭐️

  1. 打印如下图形 - 空心菱形

    感兴趣的,再去打印一个实心菱形

                    *
           * *
          *   *
         *     *
        *       *
         *     *
          *   *
           * *
            *
    
  2. 输出[1~199]之间所有的质数,并且每打印7个换一行

    package tech.aistar.day03.homework;
    
    /**
     * 本类用来演示: 输出[2~200]之间所有的质数,并且每打印7个换一行
     *
     * @author: success
     * @date: 2021/7/20 8:33 上午
     */
    public class PrimeDemo {
        public static void main(String[] args) {
            //思路
            //如何判断某个数是否为质/素数
            //质数:只有1和它本身能够被它自己整除.
    
            //  17 -> [2,16]
            // n -> [2,n-1]
    
            //定义一个计数器
            int count = 0;
    
            for (int n = 2; n < 200; n++) {
    
                //定义一个标记位
                boolean flag = true;
    
                for (int j = 2; j <=Math.sqrt(n); j++) {
                    if(n%j==0){
                        //不是质数
                        flag = false;
                        break;//只要找到一个,打破它所在的当前循环
                    }
                }
    
                if(flag) {//是质数
                    System.out.print(n+"\t");
                    if(++count==7){
                        System.out.println();
                        count = 0;
                    }
                }
           }
    
        }
    }
    
  3. 求某年某日的最大天数

  4. 求斐波那契数列第n个位置上的值 - 不允许使用递归算法

    斐波那契数列如下:1 1 2 3 5 8 13 21 34 55 ...
    
  5. 设计一个程序,输出如下:比如传入数字10,打印结果如下.传入的数字代表输出的行数.

      1!=1
      2!=2
      3!=6
      4!=24
      5!=120
      6!=720
      7!=5040
      8!=40320
      9!=362880
      10!=3628800
    
      输出最终结果:
      1!+2!+3!+4!+5!+6!+7!+8!+9!+10!=4037913
    
  6. 设计一个程序,输出如下

    1*8+1= 9
    12*8+2= 98
    123*8+3= 987
    1234*8+4= 9876
    12345*8+5= 98765
    123456*8+6= 987654
    1234567*8+7= 9876543
    12345678*8+8= 98765432
    123456789*8+9= 987654321
    

☀️☀️☀️☀️题

  1. 给定一个数组,删除该数组中指定的数值.

    比如:int[] arr = {1,2,1,2,3,4};
    需要删除的指定的数值是2,最后返回得{1,1,3,4},将该数组中所有的数字2全部删除
    
  2. 给定一个数组,写一个程序,随机打乱该数组中的值

  3. 数组去重,将数组中重复的数据去除,只保留一份

    比如:int[] arr = {2,1,3,1,2,4} -> 去重之后,返回{2,1,3,4}
    

#👑 👑 👑 👑 题

  1. 将1~5之间的随机整数,存储到一个长度为15的一维数组中.写一段程序.

    统计每个随机数在这个数组中出现的次数.并且根据出现的次数进行降序排列.

  2. 给定一个年份和月份,在idea控制台输出该日历,形式如下

    相关api:java.util.Date和java.util.Calendar

    请您输入year:>2021
    请您输入month:>7
            20217月
    日     一    二     三    四     五    六
                           1     2    3    
    4      5      6     7     8     9    10    
    11 12     13     14     15     16    17*    
    18 19     20     21     22     23    24    
    25 26     27     28  29     30    31    
    

文章作者: 码农耕地人
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 码农耕地人 !
  目录