2015年第六届蓝桥杯省赛真题之一奖券数目

来源:互联网 发布:java课程设计案例源码 编辑:程序博客网 时间:2024/05/22 00:44

这套真题是我在csdn上找到的,链接在此 2015年第六届蓝桥杯省赛真题

虽然原博客主是c++类别的,我是java的,但是完全不影响,所有题目都已用java实现,随便吐槽一下原博客主,第四题肯定是被你吃了!再见


1.问题描述:奖券数目

有些人很迷信数字,比如带“4”的数字,认为和“死”谐音,就觉得不吉利。

虽然这些说法纯属无稽之谈,但有时还要迎合大众的需求。某抽奖活动的奖券号码是5位数(10000-99999),

要求其中不要出现带“4”的号码,主办单位请你计算一下,如果任何两张奖券不重号,最多可发出奖券多少张。

请提交该数字(一个整数),不要写任何多余的内容或说明性文字。

思路:5重循环,第一重为1-9,其余为0-9(这样就可以遍历10000到99999之间的全部数字),并且判断条件为每一个变量都不能为4。

结果:52488

评解:虽然我和原博客主运用了一样的5重循环,但是我是在每一重循环下写 if(i == 4) continue; 来达到不出现4的目的,这样就比原博客主的效率更高(虽然c++的运行效率是java的好几倍微笑

public class one奖券数目 {    public static void main(String[] args) {        int num = 0;        for (int i = 1; i < 10; i++) {            if(i == 4) continue;            for (int j = 1; j < 10; j++) {                if(i == 4) continue;                for (int k = 1; k < 10; k++) {                    if(i == 4) continue;                    for (int l = 1; l < 10; l++) {                        if(i == 4) continue;                        for (int m = 1; m < 10; m++) {                            if(i == 4) continue;                            num++;                        }                    }                }            }        }        System.out.println(num);    }}



1 0