蓝桥必会题

蓝桥必会题

1. 排列组合

1.1 组素数

素数就是不能再进行等分的数。比如:2 3 5 7 11 等。9 = 3 * 3 说明它可以3等分,因而不是素数。

我们国家在1949年建国。如果只给你 1 9 4 9 这4个数字卡片,可以随意摆放它们的先后顺序(但卡片不能倒着摆

放啊,我们不是在脑筋急转弯!),那么,你能组成多少个4位的素数呢?

比如:1949,4919 都符合要求。

请你提交:能组成的4位素数的个数,不要罗列这些素数!!

注意:不要提交解答过程,或其它的辅助说明文字。

import java.util.HashSet;

public class Main {
    
    static HashSet<Integer> hashSet = new HashSet();

    public static void main(String[] args) {
        int arr[] = {1,9,4,9};
        fulSort(arr, 0, arr.length-1);
        System.out.print(hashSet.size());
    }
    
    static void fulSort(int arr[], int start, int end) {
        if(start==end) {
            int num = 1000*arr[0] + 100*arr[1] + 10*arr[2] + arr[3];
            if(checkNum(num)) {
                System.out.println(num);
                hashSet.add(num);
            }
            return;
        }
        /*
         * core
         */
        for(int i=start; i<=end; i++) {
            swap(arr, start, i);
            fulSort(arr, start+1, end);
            swap(arr, start, i);
        }
    }
    
    static void swap(int arr[], int i, int j) {
        int temp = arr[i];
        arr[i] = arr[j];
        arr[j] = temp;
    }
    
    static boolean checkNum(int num) {
        for(int i =2; i<num-1; i++) {
            if(num % i == 0) {
                return false;
            }
        }
        return true;
    }
}

1.2 马虎的算式

小明是个急性子,上小学的时候经常把老师写在黑板上的题目抄错了。

有一次,老师出的题目是:36 x 495 = ?,他却给抄成了:396 x 45 = ?

但结果却很戏剧性,他的答案竟然是对的!!因为 36 * 495 = 396 * 45 = 17820

类似这样的巧合情况可能还有很多,比如:27 * 594 = 297 * 54

假设 a b c d e 代表1~9不同的5个数字(注意是各不相同的数字,且不含0)

能满足形如: ab * cde = adb * ce 这样的算式一共有多少种呢?

请你利用计算机的优势寻找所有的可能,并回答不同算式的种类数。

满足乘法交换律的算式计为不同的种类,所以答案肯定是个偶数。

答案直接通过浏览器提交。

注意:只提交一个表示最终统计种类数的数字,不要提交解答过程或其它多余的内容。

import java.awt.List;
import java.util.ArrayList;

public class Main {
    
    static int result = 0;

    public static void main(String[] args) {
        int arr[] = {1,2,3,4,5,6,7,8,9};
        int n = 5;
        ArrayList<Integer> arrayList = new ArrayList<Integer>();
        for(int i=0; i<n; i++) {
            arrayList.add(-1);
        }
        fullSort(arrayList, arr, n);
        System.out.println(result);
    }
    
    static void fullSort(ArrayList<Integer> arrlist, int[] arr, int n) {
        
        if(n==0) {
            System.out.println(arrlist);
            int num1 = arrlist.get(0)*10 + arrlist.get(1);
            int num2 = arrlist.get(2)*100 + arrlist.get(3)*10 + arrlist.get(4);
            int num3 = arrlist.get(0)*100 + arrlist.get(3)*10 + arrlist.get(1);
            int num4 = arrlist.get(2)*10 + arrlist.get(4);
            if(num1*num2 == num3*num4) {
                result++;
            }
            return;
        }
        /*
         * core
         */
        for (int i=0; i<arr.length; i++) {
            if(!arrlist.contains(arr[i])) {
                arrlist.set(arrlist.size()-n, arr[i]);
            }else {
                continue;
            }
            fullSort(arrlist, arr, n-1);
            arrlist.set(arrlist.size()-n, -1);
        }
    }
}

1.3 第39级台阶

小明刚刚看完电影《第39级台阶》,离开电影院的时候,他数了数礼堂前的台阶数,恰好是39级!

站在台阶前,他突然又想着一个问题:

如果我每一步只能迈上1个或2个台阶。先迈左脚,然后左右交替,最后一步是迈右脚,也就是说一共要走偶数

步。那么,上完39级台阶,有多少种不同的上法呢?

请你利用计算机的优势,帮助小明寻找答案。

要求提交的是一个整数。
注意:不要提交解答过程,或其它的辅助说明文字。

public class Main {
    
    static int count = 0;

    public static void main(String[] args) {
        walk(0, 0);
        System.out.println(count);
    }
    
    static void walk(int step, int num) {
        if (step>39) {
            return;
        }
        if (step == 39 && num%2 == 0) {
            count++;
            return;
        }
        walk(step+1, num+1);
        walk(step+2, num+1);
    }
}

2. 日期题

2.1 跑步锻炼

小蓝每天都锻炼身体。

正常情况下,小蓝每天跑 1 千米。

如果某天是周一或者月初(1 日),为了激励自己,小蓝要跑 2 千米。

如果同时是周一或月初,小蓝也是跑 2 千米。

小蓝跑步已经坚持了很长时间,从 2000 年 1 月 1 日周六(含)到 2020 年10 月 1 日周四(含)。

请问这段时间小蓝总共跑步多少千米?

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class Main {

    public static void main(String[] args) throws ParseException {
        int sum = 0;
        Calendar startCalendar = Calendar.getInstance();
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        Date startDate = format.parse("2000-01-01");
        Date enDate = format.parse("2020-10-02");
        startCalendar.setTime(startDate);
        Calendar endCalendar = Calendar.getInstance();
        endCalendar.setTime(enDate);
        while(!startCalendar.equals(endCalendar)) {
            int w = startCalendar.get(Calendar.DAY_OF_WEEK);
            int m = startCalendar.get(Calendar.DAY_OF_MONTH);
            if(w == 2 || m == 1) {
                sum += 2;
            }else {
                sum += 1;
            }
            startCalendar.add(Calendar.DATE, 1);
        }
        System.out.println(sum);
    }
}

2.2 回文日期

2020 年春节期间,有一个特殊的日期引起了大家的注意:2020年2月2日。因为如果将这个日期按“yyyymmdd” 的格式写成一个8 位数是20200202,
恰好是一个回文数。我们称这样的日期是回文日期。
有人表示20200202 是“千年一遇” 的特殊日子。对此小明很不认同,因为不到2年之后就是下一个回文日期:20211202 即2021年12月2日。
也有人表示20200202 并不仅仅是一个回文日期,还是一个ABABBABA型的回文日期。对此小明也不认同,因为大约100 年后就能遇到下一个ABABBABA 型的回文日期:21211212 即2121 年12 月12 日。算不上“千年一遇”,顶多算“千年两遇”。
给定一个8 位数的日期,请你计算该日期之后下一个回文日期和下一个ABABBABA型的回文日期各是哪一天。

【输入格式】
输入包含一个八位整数N,表示日期。

【输出格式】
输出两行,每行1 个八位数。第一行表示下一个回文日期,第二行表示下
一个ABABBABA 型的回文日期。

【样例输入】
20200202

【样例输出】
20211202
21211212

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) throws ParseException {
        
        Scanner inScanner = new Scanner(System.in);
        String dateString = inScanner.nextLine();
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd");
        Date date = simpleDateFormat.parse(dateString);
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        boolean result = true;
        while(result) {
            calendar.add(Calendar.DATE, 1);
            String dateString2 = simpleDateFormat.format(calendar.getTime());
            if (judgy1(dateString2)) {
                System.out.println(dateString2);
                result =false;
            }
        }
        result = true;
        calendar.setTime(date);
        while(result) {
            calendar.add(Calendar.DATE, 1);
            String dateString2 = simpleDateFormat.format(calendar.getTime());
            if (judgy1(dateString2) && judgy2(dateString2)) {
                System.out.println(dateString2);
                result =false;
            }
        }
    }
    
    static boolean judgy1(String s) {
        StringBuffer stringBuffer = new StringBuffer(s);
        stringBuffer.reverse();
        String newsString = stringBuffer.toString();
        if (s.equals(newsString)) {
            return true;
        }
        return false;
    }
    
    static boolean judgy2(String s) {
        if(s.charAt(0) == s.charAt(2) && s.charAt(2) == s.charAt(5) &&s.charAt(5) == s.charAt(7)) {
            if(s.charAt(1) == s.charAt(3) && s.charAt(3) == s.charAt(4) &&s.charAt(4) == s.charAt(6)) {
                return true;
            }   
        }
        return false;
    }
}
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,723评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,485评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,998评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,323评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,355评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,079评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,389评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,019评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,519评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,971评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,100评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,738评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,293评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,289评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,517评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,547评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,834评论 2 345

推荐阅读更多精彩内容