蓝桥杯基础编程第一天

闰年判断

资源限制
时间限制:1.0s 内存限制:256.0MB
问题描述
给定一个年份,判断这一年是不是闰年。

当以下情况之一满足时,这一年是闰年:

  1. 年份是4的倍数而不是100的倍数;

  2. 年份是400的倍数。

其他的年份都不是闰年。

输入格式
输入包含一个整数y,表示当前的年份。
输出格式
输出一行,如果给定的年份是闰年,则输出yes,否则输出no。
说明:当试题指定你输出一个字符串作为结果(比如本题的yes或者no,你需要严格按照试题中给定的大小写,写错大小写将不得分。

样例输入
2013
样例输出
no
样例输入
2016
样例输出
yes
数据规模与约定
1990 <= y <= 2050。

解题思路:
循环遍历从1990年到2050年,用if判断年份是否被4整除并且不被100整除或直接被400整除。

import java.util.*;

public class Main{
public static void main(String args[]){
Scanner sc=new Scanner(System.in);
int a;
a=sc.nextInt();
while(a<1990||a>2050){
a=sc.nextInt();
}
if((a%40&&a%100!=0)||a%4000){
System.out.print(“yes”);
}else
System.out.print(“no”);

}

}

01字串

资源限制
时间限制:1.0s 内存限制:256.0MB
问题描述
对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。它们的前几个是:

00000

00001

00010

00011

00100

请按从小到大的顺序输出这32种01串。

输入格式
本试题没有输入。
输出格式
输出32行,按从小到大的顺序每行一个长度为5的01串。
样例输出
00000
00001
00010
00011
<以下部分省略>

解题思路:
因为长度为5的01字串,他的情况有2的5次方种,即0-31的二进制数,利用栈将十进制转化成二进制,根据字母长度判断需要加多少个0。

i

mport java.util.*;

public class Main {
    public static void main(String args[]) {
        Integer a;
        String b;
        for (int i=0;i<32;i++){
            fun(i);
        }
    }
    static void fun(int a) {
        String s = "";
        Stack b = new Stack();
        if (a != 0) {
            while (a != 0) {
                b.push(a % 2);
                a /= 2;
            }
            if(b.size()<6){
                for(int i=1;i<6-b.size();i++)
                    s=s+0;
            }
            while (!b.isEmpty())
                s=s+b.pop();
            System.out.print(s);
        } else
            System.out.print("00000");
    System.out.println();
    }
}
发布了9 篇原创文章 · 获赞 0 · 访问量 104

猜你喜欢

转载自blog.csdn.net/weixin_42616905/article/details/104393310
今日推荐