- package 第四次蓝桥杯测试;
- /**
- *
- * @author MZFAITHDREAM
- *1.隔行变色
- Excel表的格子很多,为了避免把某行的数据和相邻行混淆,可以采用隔行变色的样式。
- 小明设计的样式为:第1行蓝色,第2行白色,第3行蓝色,第4行白色,....
- 现在小明想知道,从第21行到第50行一共包含了多少个蓝色的行。
- 请你直接提交这个整数,千万不要填写任何多余的内容。15
- */
- public class DemoTest1 {
-
- public static void main(String[] args) {
- for (int i = 21; i <= 50; i=i+2) {
-
- System.out.println(i);
- }
-
-
- }
-
- }
- package 第四次蓝桥杯测试;
- /**
- * 煤球数目
- * @author MZFAITHDREAM
- *有一堆煤球,堆成三角棱锥形。具体:
- 第一层放1个,
- 第二层3个(排列成三角形),
- 第三层6个(排列成三角形),
- 第四层10个(排列成三角形),
- …
- 如果一共有200层,共有多少个煤球?
- 请填表示煤球总数目的数字。
- 注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。
- 递归
- */
- public class DemoTest2 {
- public static void main(String[] args) {
-
- int sum = 0;
- //求和 每层煤球的数目相加
- for (int i = 1; i <= 100 ; i++) {
- sum += briquetteNum(i);
- }
- System.out.println(sum);
- }
- //求每层有多少个煤球
- public static int briquetteNum(int num) {
- if (num == 1) {
- return 1;
- }else {
- //
- return briquetteNum(num - 1) + num;
- }
- }
- }
- package 第四次蓝桥杯测试;
-
- import java.text.DecimalFormat;
-
- /**
- * 无穷分数
- * 3. 无穷分数
- 无穷的分数,有时会趋向于固定的数字。
- 请计算【图1.jpg】所示的无穷分数,要求四舍五入,精确到小数点后5位,小数位不足的补0。
- 请填写该浮点数,不能填写任何多余的内容。
- * @author MZFAITHDREAM
- *DecimalFormat是格式为十进制数的NumberFormat的具体子类。
- * 它具有各种功能,旨在使任何地区的数字解析和格式化,包括支持西方,阿拉伯语和印度数字
- 它还支持不同类型的数字,包括整数(123),定点数(123.4),科学记数法(1.23E4),百分比(12%)和货币金额(123美元)。
- 所有这些都可以进行本地化。
- */
- public class DemoTest3 {
- public static void main(String[] args) {
- float a=100000;
- DecimalFormat df = new DecimalFormat("0.00000");//保留五位小数
- for (float i = 1000000; i >= 0; i=i-1) {
- a = i + (i + 1) / a;
- }
- System.out.println("保留的五位数"+df.format(a));
- }
-
- }
- package 第四次蓝桥杯测试;
- /**
- *
- * @author MZFAITHDREAM
- *4. 海盗比酒量
- 有一群海盗(不多于20人),在船上比拼酒量。过程如下:打开一瓶酒,所有在场的人平分喝下,
- 有几个人倒下了。再打开一瓶酒平分,又有倒下的,再次重复...... 直到开了第4瓶酒,坐着的已经所剩无几,
- 海盗船长也在其中。当第4瓶酒平分喝下后,大家都倒下了。
- 等船长醒来,发现海盗船搁浅了。他在航海日志中写到:“......昨天,我正好喝了一瓶.......奉劝大家,开船不喝酒,喝酒别开船......”
- 请你根据这些信息,推断开始有多少人,每一轮喝下来还剩多少人。
- 如果有多个可能的答案,请列出所有答案,每个答案占一行。
- 格式是:人数,人数,...
- 例如,有一种可能是:20,5,4,2,0
- */
- public class DemoTest4 {
- public static void main(String[] args) {
- new a().f();
- }
-
-
- }
-
- class a{
-
- public void f() {
- float i,j,q,people;
- //people是海盗总人数
- //i是第一轮剩余人数
- //j是第二轮剩余人数
- //p是第三轮剩余人数
- //第四轮就全都倒下了,不用设置变量
- //因为每一轮都有倒下的(我认为),所以每一轮的最大值都是上一轮-1(上一轮至少倒下一个的情况)
- //people>=5是我认为最少得有五个海盗
- for( people=20;people>=5;people--){
- for(i=people-1;i>=4;i--){
- for(j=i-1;j>=3;j--){
- for(q=j-1;q>=2;q--){
- if(1/people+1/i+1/j+1/q==1)
- System.out.println((int)people+" "+(int)i+" "+(int)j+" "+(int)q+" "+"0");
- }
- }
- }
- }
- }
-
- }
- package WEB45;
- /**
- *
- * @author MZFAITHDREAM
- *生日蜡烛
- 某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛。
- 现在算起来,他一共吹熄了236根蜡烛。
- 请问,他从多少岁开始过生日party的?
- 请填写他开始过生日party的年龄数。
- 注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。
- */
- public class 生日蜡烛 {
-
- public static void main(String[] args) {
-
- for (int i = 1; i < 100; i++) {
- int num=i;
- int sum=i;
- while(true) {
- num++;
- sum=sum+num;
- if(sum==236)
- {
- System.out.print("从第"+i+"开始吹蜡烛,今年吹了"+num+"根蜡烛");
- }
- if(sum>236) {
- break;
- }
- }
- }
- }
-
- }
- package WEB45;
-
- import java.util.Calendar;
-
- /**
- *
- * @author MZFAITHDREAM
- *世纪末的星期
- 曾有邪教称1999年12月31日是世界末日。当然该谣言已经不攻自破。
- 还有人称今后的某个世纪末的12月31日,如果是星期一则会....
- 有趣的是,任何一个世纪末的年份的12月31日都不可能是星期一!!
- 1999年的12月31日是星期五,
- 请问:未来哪一个离我们最近的一个世纪末年(即xx99年)的12月31日正好是星期天(即星期日)?
- 请回答该年份(只写这个4位整数,不要写12月31等多余信息)
- */
- public class 世纪末的星期 {
-
-
-
- public static void main(String[] args) {
- // 时间的的类
- Calendar c=Calendar.getInstance();
- for (int year = 1999; year < 10000; year+=100) {
- c.set(Calendar.YEAR, year);
- c.set(Calendar.MARCH, 11);
- c.set(Calendar.DAY_OF_MONTH, 31);
- if(c.get(Calendar.DAY_OF_WEEK)==1) {
- System.out.println(year);
- System.out.println("年"+c.get(Calendar.YEAR));
- System.out.println("月"+c.get(Calendar.MARCH));
- System.out.println("日"+c.get(Calendar.DAY_OF_MONTH));
- break;
- }
- }
- }
-
- }
- package WEB44;
- /**
- *
- * @author MZFAITHDREAM
- *小明有一些矩形的材料,他要从这些矩形材料中切割出一些正方形。
- 当他面对一块矩形材料时,他总是从中间切割一刀,切出一块最大的正方
- 形,剩下一块矩形,然后再切割剩下的矩形材料,直到全部切为正方形为止。
- 例如,对于一块两边分别为 5 和 3 的材料(记为 5 × 3),
- 小明会依次切出
- 3 × 3、
- 2 × 2、
- 1 × 1、
- 1 × 1 共 4 个正方形。
- 现在小明有一块矩形的材料,两边长分别是 2019 和 324。请问小明最终会
- 切出多少个正方形?
- 【答案提交】
- 这是一道结果填空的
- */
- public class 矩形切割 {
- public static void main(String[] args) {
- int x=2019,y=324,count=0;
- while(x>0||y>0) {
- if (x > y) { //2019>324
- x -= y; //2019-=324
- count++; //累加次数
- }
- if (x < y) { //2019<324
- y -= x; //324-=x; (划重点!!)
- count++; //累加次数
- }
- if (x == y) { //减到x,y相同时,正方形就出来了!!
- count++; //累加次数
- System.out.println(count); //输出结果21
- return; //再问,打死!!
- }
- }
- }
-
-
- }
-
- package WEB44;
- /**
- *
- * @author MZFAITHDREAM
- *某君新认识一网友。
- 当问及年龄时,他的网友说:
- “我的年龄是个2位数,我比儿子大27岁,
- 如果把我的年龄的两位数字交换位置,刚好就是我儿子的年龄”
- 请你计算:网友的年龄一共有多少种可能情况?
- 提示:30岁就是其中一种可能哦.
- 请填写表示可能情况的种数。
- 注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。
- */
- public class 网友年龄 {
- public static void main(String[] args) {
- int count =0;
- for (int i = 0; i < 9; i++) {
- for (int j = 0; j <=9; j++) {
- int my=i*10+1; //计算网友的年龄
- if(my>=10&&my<=90) {
- int son=my-27;
- int tmp=j*10+1;
- if(tmp==son) {
- System.out.println(my);
- count++;
- }
- }
- }
- }
-
- System.out.println(count);
-
-
- }
-
- }
- package WEB44;
- /**
- *
- * @author MZFAITHDREAM
- *明很喜欢猜谜语。
- 最近,他被邀请参加了X星球的猜谜活动。
- 每位选手开始的时候都被发给777个电子币。
- 规则是:猜对了,手里的电子币数目翻倍,
- 猜错了,扣除555个电子币, 扣完为止。
- 小明一共猜了15条谜语。
- 战果为:vxvxvxvxvxvxvvx
- 其中v表示猜对了,x表示猜错了。
- 请你计算一下,小明最后手里的电子币数目是多少。
- 请填写表示最后电子币数目的数字。
- 注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。
- */
- public class 有奖猜谜 {
- public static void main(String[] args) {
- int num=777;
- //1 0
- int[] array={1,0,1,0,1,0,1,0,1,0,1,0,1,1,0};//1代表v 0代表x
- for (int i = 0; i < array.length; i++) {
- if(array[i]==1) {
- num*=2;
- }
- else {
- num-=555;
- }
- }
- System.out.println("数量"+num);
-
-
-
- }
-
- }
- package WEB44;
- /**
- *
- * @author MZFAITHDREAM
- *我们知道第一个质数是 2、第二个质数是 3、第三个质数是 5……请你计算
- 第 2019 个质数是多少?
- */
- public class 质数 {
- public static void main(String[] args) {
- int num=0;
- int a=1;
- while(num<2019) {
- a++;
- int i;
- for ( i = 2; i <a; i++) {
- if(a%i==0) {
- break;
- }
- }
- // if(i/a==1) 判断为质数
- if(i==a) {
- num++;
- }
-
- }
- System.out.println(a);
-
- }
-
- }
- package WEB331;
- /**
- * 5只猴子是好朋友,在海边的椰子树上睡着了。这期间,有商船把一大堆香蕉忘记在沙滩上离去。
- 第1只猴子醒来,把香蕉均分成5堆,还剩下1个,就吃掉并把自己的一份藏起来继续睡觉。
- 第2只猴子醒来,重新把香蕉均分成5堆,还剩下2个,就吃掉并把自己的一份藏起来继续睡觉。
- 第3只猴子醒来,重新把香蕉均分成5堆,还剩下3个,就吃掉并把自己的一份藏起来继续睡觉。
- 第4只猴子醒来,重新把香蕉均分成5堆,还剩下4个,就吃掉并把自己的一份藏起来继续睡觉。
- 第5只猴子醒来,重新把香蕉均分成5堆,哈哈,正好不剩!请计算一开始最少有多少个香蕉。
- * @author MZFAITHDREAM
- *
- */
- public class 猴子分香蕉2018 {
- public static void main(String[] args) {
- for (int i = 0; i <10000; i++) {
- int tep=i;
- if(tep%5==1) {
- tep=tep-tep/5-1;
- if(tep%5==2) {
- tep=tep-tep/5-2;
- if(tep%5==3) {
- tep=tep-tep/5-3;
- if(tep%5==4) {
- tep=tep-tep/5-4;
- if(tep%5==0&&tep>0) {
- System.out.println(i);
- }
- }
- }
- }
- }
- }
- }
-
- }
- package WEB331;
- /**
- * 1221是一个非常特殊的数,它从左边读和从右边读是一样的,编程求所有这样的四位十进制数。
- 输出格式
- 按从小到大的顺序输出满足条件的四位十进制数。
- * @author MZFAITHDREAM
- *
- */
- public class 回文数 {
- public static void main(String[] args) {
- for (int i = 100; i < 1000; i++) {
- int sa=i;
- int a=sa/1000;
- sa%=1000;
- int b=sa/100;
- sa%=100;
- int c=sa%10;
- sa%=10;
- int d=sa;
- if(a==d&&b==c) {
- System.out.println(i);
- }
-
-
- }
-
-
- }
-
- }
- package WEB331;
-
- import java.util.Scanner;
- public class 杨辉三角形 {
-
- public static void main(String[] args) {
- Scanner sc=new Scanner(System.in);
- int length=sc.nextInt();
- int arr[][]=new int[length][length];
- for (int x = 0; x < length; x++) {
- for (int y = 0; y <=x; y++) {
- if(y==0||y==x) {
- arr[x][y]=1;
- }else {
- // 在这里
- arr[x][y]=arr[x-1][y]+arr[x-1][y-1];
- }
- System.out.print(arr[x][y]+" ");
- }
- System.out.println();
- }
-
-
-
-
- }
-
- }
- package WEB315307;
-
- public class 猴子吃桃问题 {
-
- private static int countNum(){
- int day=1;
- for(int i=10;i>1;i--){
- day=(day+1)*2;
- System.out.println(day);
- }
- return day;
-
- }
-
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- countNum();
- System.out.println();
- }
-
- }
- package WEB315307;
- /*
- * 有1、2、3、4 5个数字,
- * 能组成多少个互不相同且一个数字中无重复数字的三位数 我要求第一位数等于三位数?
- * 并把他们都输入。 从left到right 读出来的数字一样
- *
- */
- public class 能组成多少个互不相同且一个数字中无重复数字的三位 {
-
- public static void main(String[] args) {
- int count=0;
- //0 1 2 3 4 五个数
- for (int i = 1; i < 5; i++) {
- // 0 1 2 3 4
- for (int j = 1; j <5; j++) {
- //0 1 2 3 4
- for (int k = 1; k <5; k++) {
- if(i==k &&i!=j && j!=k ) {
- count++;
- System.out.println(i*100+j*10+k);
- }
-
-
-
- }
-
- }
-
- }
-
- }
-
- }
- package WEB315307;
-
- import java.util.Scanner;
-
- public class 判断是否为素数 {
-
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- System.out.println("输入数值");
- try (Scanner scan = new Scanner(System.in)) {
- int n=scan.nextInt();
- isprime(n);
- }
-
- }
-
- static void isprime(int n) {
- // TODO Auto-generated method stub
- int m=0;
- for (int i = 2; i < n; i++) {
- if(n%i==0)
- m++;
- }
- if(m==0) {
- System.out.println("为素数");
- }else {
- System.out.println("不是素数");
- }
-
- }
-
- }
- package WEB315307;
-
- import java.util.Scanner;
-
- /**
- *
- * @author MZFAITHDREAM
- *
- */
- public class 奇数偶数互换 {
-
- //把奇数偶数互换
- //所有的基数位向left 所有的偶数位向right
- public static void main(String[] args) {
- // 创建Scanner
- System.out.println("输入数值");
- Scanner scan=new Scanner(System.in);
- int n=scan.nextInt();
- int even=n&0xaaaaaaaa;
- int odd=n&0x55555555;
- int result= (even>>1)^(odd<<1);
- System.out.println(result);
- }
-
-
- }
一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,
* 求它在第10次落地时,共经过多少米?第10次反弹多高?
- package WEB315307;
- /**
- * 一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,
- * 求它在第10次落地时,共经过多少米?第10次反弹多高?
- * @author MZFAITHDREAM
- *
- */
- public class 球的高度 {
- private static void fall(int num) {
- int sum=0;
- int hight=100;
- for (int i = 0; i <=num; i++) {
- sum=sum+hight;
- hight=hight/2;
- }
- System.out.println("L"+num+sum);
- System.out.println("H"+num+hight);
- }
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- fall(10);
- }
-
- }
输入三个整数x,y,z,请把这三个数由小到大输出。
- package WEB315307;
-
- public class 三个数比大小 {
- //输入三个整数x,y,z,请把这三个数由小到大输出。
- private static void sort(int x,int y,int z){
- /**
- * temp=x;
- x=y;
- y=temp;
- */
- int temp=0;
- if(x>y){
- temp=x;
- x=y;
- y=temp;
- }
- if(y>z){
- temp=y;
- y=z;
- z=temp;
- }
- if(x>y){
- temp=x;
- x=y;
- y=temp;
- }
- System.out.println("排列后的三个数是:"+x+","+y+","+z);
- }
-
- public static void main(String[] args) {
- // TODO Auto-generated method stub
-
- sort(67, 678, 123);
-
- }
-
- }
输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
- package WEB315307;
- /**
- * 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
- * @author MZFAITHDREAM
- *
- */
- public class 统计字符串空格数字 {
- private static void just(String String) {
- int number=0,letter=0,space=0,other=0;
- String s1="[a-zA-Z]";
- String s2="[0-9]";
- String s3="\\s";
- String [] strings=String.split("");
- for (String s : strings) {
- if(s.matches(s1)) {
- letter++;
- }else if (s.matches(s2)) {
- number++;
- } else if (s.matches(s3)) {
- space++;
- } else {
- other++;
- }
- }
-
- System.out.println("字符串的个数"+letter);
- System.out.println("空格的个数"+space);
- System.out.println("数字的个数"+letter);
- System.out.println("其他个数"+number);
- }
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- just("AWE 48 939392 3KDN,NFD KL ");
- }
-
- }