蓝桥杯

蓝桥杯:练习题:回文数

*爱你&永不变心* 提交于 2019-12-05 16:50:25
package lanqiaobei; import java.util.Scanner; /* 练习题:回文数 一个正整数,如果交换高低位以后和原数相等,那么称这个数为回文数。比如 121,2332 都是回文数,13,456713,4567 不是回文数。 任意一个正整数,如果其不是回文数,将该数交换高低位以后和原数相加得到一个新的数,如果新数不是回文数,重复这个变换,直到得到一个回文数为止。例如,57 变换后得到 132(57+75),132 得到 363(132+231),363是一个回文数。 曾经有数学家猜想:对于任意正整数,经过有限次上述变换以后,一定能得出一个回文数。至今这个猜想还没有被证明是对的。现在请你通过程序来验证。 输入格式 输入一行一个正整数n。 输出格式 输出第一行一个正整数,表示得到一个回文数的最少变换次数。 接下来一行,输出变换过程,相邻的数之间用"--->"连接。输出格式可以参见样例。 保证最后生成的数在 int 范围内。 样例输入 349 样例输出 3 349--->1292--->4213--->7337 */ public class HuiWenNumber { static int cont=0; static StringBuffer re=new StringBuffer(""); public static void main

蓝桥杯算法训练:回文数位数和

ε祈祈猫儿з 提交于 2019-12-05 16:49:01
观察数字:123211232112321,123321123321123321 都有一个共同的特征,就是无论从左到右读还是从右向左读,都是相同的。这样的数字叫做回文数字。现在要从 5 位或 6位的十进制数字中找出各个数位之和等于 n的回文数字。 输入格式 输入一个整数 n(10≤n≤100) 输出格式 输出所有各个数位之和等于 n 的 5 位和 6 位整数,每个数字占一行,数字按从小到大的顺序排列。如果没有满足条件的数字,则输出 −1 import java.util.Scanner; public class Main { public static void main (String args[]){ String num = null ; int n= 0 ; int sum= 0 ; boolean flag= true ; boolean s= true ; Scanner sc = new Scanner(System. in ); n = sc.nextInt(); for ( int j= 10000 ;j<= 999999 ;j++){ flag= true ; num=String.valueOf(j); //首先判断是否是回文数,采用字符串的形式进行比对 for ( int i= 0 ;i<num.length()/ 2 ;i++){ if (!String

蓝桥杯基础练习 回文数

。_饼干妹妹 提交于 2019-12-05 16:46:23
问题描述   1221是一个非常特殊的数,它从左边读和从右边读是一样的,编程求所有这样的四位十进制数。 输出格式   按从小到大的顺序输出满足条件的四位十进制数。 1.常规做法 #include <cstdio> int is_palindrome(int n){ int a[5],num=0; do{ a[num++]=n%10; n/=10; }while(n); for(int i=0;i<num/2;i++) if(a[i]!=a[num-1-i]) return 0; return 1; } int main(){ for(int i=1000;i<=9999;i++) if(is_palindrome(i)) printf("%d\n",i); return 0; } 2.由题中锦囊可得另外一种比较简便的方法 #include <cstdio> int main(){ int a,b,c,d; for(int i=1000;i<=9999;i++){ a=i/1000; b=i/100%10; c=i%100/10; d=i%10; if(a==d&&b==c) printf("%d\n",i); } return 0; } 来源: CSDN 作者: yangq_92 链接: https://blog.csdn.net/u012181348/article

蓝桥杯javaB组--外卖店优先级

老子叫甜甜 提交于 2019-12-05 11:42:24
【问题描述】 “饱了么”外卖系统中维护着 N 家外卖店,编号 1 ∼ N。每家外卖店都有 一个优先级,初始时 (0 时刻) 优先级都为 0。 每经过 1 个时间单位,如果外卖店没有订单,则优先级会减少 1,最低减 到 0;而如果外卖店有订单,则优先级不减反加,每有一单优先级加 2。 如果某家外卖店某时刻优先级大于 5,则会被系统加入优先缓存中;如果 优先级小于等于 3,则会被清除出优先缓存。 给定 T 时刻以内的 M 条订单信息,请你计算 T 时刻时有多少外卖店在优 先缓存中。 【输入格式】 第一行包含 3 个整数 N、M 和 T。 以下 M 行每行包含两个整数 ts 和 id,表示 ts 时刻编号 id 的外卖店收到 一个订单。 【输出格式】 输出一个整数代表答案。 【样例输入】 2 6 6 1 1 5 2 3 1 6 2 2 1 6 2 public class Mdian { public int ts; public int id; public Mdian() { this.ts = 0; this.id = 0; } public Mdian(int a,int b) { this.ts = a; this.id = b; } } import java.util.List; import java.util.ArrayList; import java.util

蓝桥杯JavaB组--特别数的和

馋奶兔 提交于 2019-12-05 11:28:05
【问题描述】 小明对数位中含有 2、0、1、9 的数字很感兴趣(不包括前导 0),在 1 到 40 中这样的数包括 1、2、9、10 至 32、39 和 40,共 28 个,他们的和是 574。 请问,在 1 到 n 中,所有这样的数的和是多少? 【输入格式】 输入一行包含两个整数 n。 【输出格式】 输出一行,包含一个整数,表示满足条件的数的和。 【样例输入】 40 【样例输出】 574 【评测用例规模与约定】 对于 20% 的评测用例,1 ≤ n ≤ 10。 对于 50% 的评测用例,1 ≤ n ≤ 100。 对于 80% 的评测用例,1 ≤ n ≤ 1000。 对于所有评测用例,1 ≤ n ≤ 10000。 由于本题N可以取到10000,所以用到大数类,防止溢出。 import java.math.BigInteger; import java.util.Scanner; public class Main { public static boolean fun(int num) { String s = String.valueOf(num);//将int转换为字符串 char [] art = s.toCharArray();//将字符串转换成数组 for(int i=0;i<s.length();i++) { if(art[i]=='2' || art[i]=='0'|

【软件工程 - 蓝桥杯】第三届蓝桥杯JAVA组C组国赛题解

大兔子大兔子 提交于 2019-12-05 01:49:33
1.【结果填空】 (满分11分) 看这个算式: ☆☆☆ + ☆☆☆ = ☆☆☆ 如果每个五角星代表 1 ~ 9 的不同的数字。 这个算式有多少种可能的正确填写方法? 173 + 286 = 459 295 + 173 = 468 173 + 295 = 468 183 + 492 = 675 以上都是正确的填写法! 注意: 111 + 222 = 333 是错误的填写法! 因为每个数字必须是不同的! 也就是说:1~9中的所有数字,每个必须出现且仅出现一次! 注意: 不包括数字“0”! 注意: 满足加法交换率的式子算两种不同的答案。 所以答案肯定是个偶数! 注意: 只要求计算不同的填法的数目 不要求列出所有填写法 更不要求填写源代码! 答案不要写在这里,请写在“解答.txt”中! 分析与解答: 国赛看到这种题目我是最开心的,因为这是一个很热门的知识点,全排列,全排列分好多种,这个题目简单在不用字典序输出,所以用交换法全排列就可以很轻松地搞定,当然如果考场上时间充裕的话可以套九层暴力循环,这个我在刚开始刷蓝桥杯的时候常用这招,如果一时忘了全排列模板怎么写可以用这个救命,但是要注意不要漏掉任何一个去重。 代码: public class Main03JC01 { public static int ans=0; public static void main(String[] args)

蓝桥杯 传球游戏(dp)

北战南征 提交于 2019-12-04 16:05:53
Description   上体育课的时候,小蛮的老师经常带着同学们一起做游戏。这次,老师带着同学们一起做传球游戏。 游戏规则是这样的:n个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹哨子时开始传球,每个同学可以把球传给自己左右的两个同学中的一个(左右任意),当老师再次吹哨子时,传球停止,此时,拿着球没传出去的那个同学就是败者,要给大家表演一个节目。 聪明的小蛮提出一个有趣的问题:有多少种不同的传球方法可以使得从小蛮手里开始传的球,传了m次以后,又回到小蛮手里。两种传球的方法被视作不同的方法,当且仅当这两种方法中,接到球的同学按接球顺序组成的序列是不同的。比如有3个同学1号、2号、3号,并假设小蛮为1号,球传了3次回到小蛮手里的方式有1->2->3->1和1->3->2->1,共2种。 Input   共一行,有两个用空格隔开的整数n,m(3<=n<=30,1<=m<=30)。 Output   t共一行,有一个整数,表示符合题意的方法数。 Sample Input 3 3 Sample Output 2 HINT 数据规模和约定 40%的数据满足:3<=n<=30,1<=m<=20 100%的数据满足:3<=n<=30,1<=m<=30 明显dp问题,而且比较好想 1 #include <stdio.h> 2 #include <string.h> 3

第十届蓝桥杯B组省赛第A题

谁都会走 提交于 2019-12-04 11:04:17
试题 A: 组队 【问题描述】 作为篮球队教练,你需要从以下名单中选出 1 号位至 5 号位各一名球员, 组成球队的首发阵容。 每位球员担任 1 号位至 5 号位时的评分如下表所示。请你计算首发阵容 1 号位至 5 号位的评分之和最大可能是多少? 490 #include <stdio.h> #include<iostream> #include<string> #include<algorithm>//sort函数包含的头文件 using namespace std; struct t{ int a[5]; int num; }some[20]; int some1[20][5]={ 97 ,90 ,0 ,0, 0, 92 ,85 ,96 ,0, 0, 0, 0, 0 ,0 ,93, 0 ,0, 0, 80 ,86, 89, 83, 97, 0, 0, 82, 86, 0, 0, 0, 0, 0, 0, 87, 90, 0, 97, 96, 0, 0, 0, 0, 89, 0, 0, 95, 99 ,0, 0, 0, 0, 0, 96, 97, 0, 0, 0, 0, 93, 98, 94, 91, 0, 0, 0, 0, 83, 87, 0, 0, 0, 0, 98, 97, 98, 0, 0, 0, 93, 86, 98, 83, 99, 98, 81, 93, 87, 92

蓝桥杯之VIP试题 FJ的字符串

匿名 (未验证) 提交于 2019-12-03 00:22:01
问题描述   FJ在沙盘上写了这样一些字符串:   A1 = “A”   A2 = “ABA”   A3 = “ABACABA”   A4 = “ABACABADABACABA”   … …   你能找出其中的规律并写所有的数列AN吗? 输入格式   仅有一个数:N ≤ 26。 输出格式   请输出相应的字符串AN,以一个换行符结束。输出中不得含有多余的空格或换行、回车符。 样例输入 3 样例输出 ABACABA import java.util.Scanner; public class Main { public static void main (String[] args) { Scanner in = new Scanner(System. in ); // 输入行数n int n = in .nextInt(); // 通过递归算法,获得AN字符串 System. out .println(getAN(n)); } //写递归时,从简单的入手,把模型打出来,再带入更多的数进去验算;自己要知道递归的最底层的结果是什么; //递归的下一层会带有递归的上一层的结果,例如: // A1 = “A” // A2 = “ABA” // A3 = “ABACABA” // 递归是独立的一个方法,用到return;通常第一层的结果就是递归最底层的结果。 private static