精华内容
下载资源
问答
  • 蓝桥杯练习系统-基础练习34道解答答案全汇总(c/c++)
    2022-03-18 14:22:04

    蓝桥杯练习系统BASIC-13 数列排序(c++,利用sort)
    蓝桥杯练习系统BASIC-12 十六进制转八进制(c++,利用string)
    蓝桥杯练习系统BASIC-11 十六进制转十进制(c++,利用流)
    蓝桥杯练习系统BASIC-10 十进制转十六进制(c++,利用流)
    蓝桥杯练习系统BASIC-9 特殊回文数(c++利用流和字符串)
    蓝桥杯练习系统BASIC-8 回文数(c++,超简洁,利用流和字符串)
    蓝桥杯练习系统BASIC-7 特殊的数字(c++,利用流和string)
    蓝桥练习系统BASIC-6 杨辉三角形(c++,非递归)
    蓝桥杯练习系统BASIC-5 查找整数(c++利用vector的find)
    蓝桥杯练习系统BASIC-4 数列特征(c++利用sort)
    蓝桥杯练习系统BASIC-3 字母图形(c++,利用substr)
    蓝桥杯练习系统BASIC-2 01字串(c++)
    蓝桥杯练习系统BASIC-1 闰年判断(c++)
    蓝桥杯练习系统BASIC-04 Fibonacci数列(c++,迭代)
    蓝桥杯练习系统BASIC-03 圆的面积(c++,利用atan(1)*4)
    蓝桥杯练习系统BASIC-02 序列求和(c++,求和公式)
    蓝桥杯练习系统BASIC-30 VIP试题 阶乘计算 高精度
    蓝桥杯练习系统BASIC-29 VIP试题 高精度加法 数组 高精度
    蓝桥杯练习系统BASIC-28 VIP试题 Huffuman树 贪心 Huffuman
    蓝桥杯练习系统BASIC-27 VIP试题 2n皇后问题(c++,两层dfs)
    蓝桥杯训练系统BASIC-26 VIP试题 报时助手 (c++)字符串 条件判断
    蓝桥杯练习系统BASIC-25 VIP试题 回形取数(c++,简洁) 二维数组 循环
    蓝桥杯练习系统BASIC-24 VIP试题 龟兔赛跑预测(c++清晰注释)
    蓝桥杯练习系统BASIC-23 VIP试题 芯片测试(c++) 算法基础 统计 二维数组
    蓝桥杯练习系统BASIC-22 VIP试题 FJ的字符串(c++,非递归方式)
    蓝桥杯练习系统BASIC-21 VIP试题 Sine之舞(c++ 非递归)
    蓝桥杯练习系统BASIC-20 VIP试题 数的读法(c++详细注释)
    蓝桥杯练习系统BASIC-19 VIP试题 完美的代价(c++,贪心)
    蓝桥杯练习系统BASIC-18 VIP试题(c++ 图解,注释) 矩形面积交
    蓝桥杯练习系统 BASIC-17 VIP试题 矩阵乘法(c++)
    蓝桥杯练习系统BASIC-16 VIP试题 分解质因数(c++)
    蓝桥杯练习系统BASIC-15 VIP试题 字符串对比(c++)
    蓝桥杯练习系统BASIC-14 VIP试题 时间转换(c++)

    更多相关内容
  • 里面包含了蓝桥杯历年真题以及答案详解,有129道,都是比较典型的一些题目,都附有答案详解,本人参见过第十届蓝桥杯比赛,我是学java的所以试题都是java相关的,初次之外还另有100多到基础训练,可以练练手。...
  • 蓝桥杯习题答案汇总

    千次阅读 2020-07-15 14:47:34
    基础练习 试题 基础练习 时间转换 试题 基础练习 十六进制转八进制 试题 基础练习 杨辉三角形 试题 基础练习 十六进制转十进制 算法训练 试题 算法训练 排序 试题 算法训练 1的个数 试题 算法训练 大等于n的最小...

    这篇文章是为了方便查看写过的蓝桥杯题目(python),整理如下:
    最后更新于2020.07.30

    入门训练


    试题 入门训练 A+B问题
    试题 入门训练 序列求和
    试题 入门训练 圆的面积
    试题 入门训练 Fibonacci数列


    基础练习


    试题 基础练习 时间转换
    试题 基础练习 十六进制转八进制
    试题 基础练习 杨辉三角形
    试题 基础练习 十六进制转十进制


    算法训练


    试题 算法训练 排序
    试题 算法训练 1的个数
    试题 算法训练 大等于n的最小完全平方数
    试题 算法训练 P0505
    试题 算法训练 删除数组零元素
    试题 算法训练 区间k大数查询
    试题 算法训练 最大最小公倍数
    试题 算法训练 动态数组使用
    试题 算法训练 二进制数数
    试题 算法训练 出现次数最多的整数
    试题 算法训练 表达式计算
    试题 算法训练 最小乘积(基本型)
    试题 算法训练 素因子去重
    试题 算法训练 Torry的困惑(基本型)
    试题 算法训练 Anagrams问题
    试题 算法训练 6-1 递归求二项式系数值
    试题 算法训练 5-1最小公倍数
    试题 算法训练 矩阵乘法


    算法提高


    试题 算法提高 新建Microsoft Word文档
    试题 算法提高 身份证号码升级
    试题 算法提高 7-1用宏求球的体积
    试题 算法提高 歌唱比赛
    试题 算法提高 成绩排序2
    试题 算法提高 成绩排序
    试题 算法提高 输出二进制表示
    试题 算法提高 进制转换
    试题 算法提高 珠心算测验
    试题 算法提高 比大小(样例有问题)
    试题 算法提高 8-1因式分解
    试题 算法提高 欧拉函数
    试题 算法提高 分解质因数
    试题 算法提高 翔集合,暂未解决
    试题 算法提高 天天向上
    试题 算法提高 编程求解根号3
    试题 算法提高 编程求一元二次方程的根
    试题 算法提高 成绩排名
    试题 算法提高 计数问题
    试题 算法提高 字符串顺序比较
    试题 算法提高 递归输出
    试题 算法提高 数组求和
    试题 算法提高 字符串匹配
    试题 算法提高 队列操作
    试题 算法提高 第二大整数
    试题 算法提高 奥运会开幕式
    试题 算法提高 矩阵转置
    试题 算法提高 质数2
    试题 算法提高 字符串的操作
    试题 算法提高 字符串压缩
    试题 算法提高 最大乘积
    试题 算法提高 盾神与条状项链
    试题 算法提高 计算超阶乘


    历届试题


    PREV-52 小数第n位
    PREV-21 回文数字
    PREV-10 幸运数
    PREV-5 错误票据
    PREV-1 核桃的数量


    展开全文
  • 部分习题有解析,可以点链接或者去我博客蓝桥杯一栏搜索。欢迎点赞评论指教~ 基础练习BASIC-13 数列排序BASIC-12 十六进制转八进制BASIC-11 十六进制转十进制BASIC-10 十进制转十六进制BASIC-9 特殊回文数BASIC-8 ...
  • 蓝桥杯练习系统题目汇总(含参考答案) pdf版本,代码可复制
  • 包含了官网练习系统的试题及答案,java版和c++版本均有,同时还附带java版的真题及答案
  • 蓝桥杯算法训练答案

    2018-08-22 17:35:47
    蓝桥杯练习系统算法训练答案,参加蓝桥杯的同学不可多得的资料,里面的题目全部使用java语言实现,其他语言也可以参考
  • 蓝桥杯历年真题及答案
  • 蓝桥杯大赛练习系统所有题集及答案。会员300才能看而且没有答案
  • 蓝桥杯 基础练习全解 答案+解析 共17 python

    千次阅读 多人点赞 2022-02-26 12:29:06
    就在我情绪低落之时,发现蓝桥杯基础练习还没做,于是我一口气把它给做完了,两个字,舒服。不过呢,我发现其中还是有一两条出的不够规范,有歧义,比如‘字母图形’这道,希望大家多多注意。 虽然这些都是基础...

    在这里插入图片描述

    关键字

    A+B问题,数列排序,十六进制转八进制,十六进制转十进制,十进制转十六进制,特殊回文数,回文数,特殊的数字,杨辉三角形,查找整数,数列特征,字母图形,01字串,闰年判断,斐波那契数列,圆的面积,序列求和。

    前言

    前两天刷题刷到崩溃,天天WA,处处WA,真的很搞心态。就在我情绪低落之时,发现蓝桥杯基础练习还没做,于是我一口气把它给做完了,两个字,舒服。不过呢,我发现其中还是有一两条题目要求的不够规范,有歧义,比如‘字母图形’这道题,希望大家多多注意。

    虽然这些都是基础题,但也是能通过多种方法实现的,比如杨辉三角我是通过组合数求解,而不是通过上面两数之和得出下一个数的; 斐波那契数列中我使用了递推来求解,而不是递归,我用三位数就能求出五位到六位的回文数,而不是在五位到六位数之间遍历匹配回文串等等 ,另外,我还会提到在除法计算中的精度问题。我们一起去看看吧!


    A+B问题

    在这里插入图片描述
    这道题就不用说啥了,注意输入时是使用map函数接收两个整数。期间需要使用split()函数分割。

    A,B = map(int,input().split())
    print(A+B)
    

    数列排序

    在这里插入图片描述
    排序的方法有很多,对于python来说,它有个自带的排序函数sort,可以直接对列表进行排序然后输出。

    length = int(input())
    nums = list(map(int,input().split()))
    nums.sort()
    for i in nums:
        print(i,end=" ")
    

    我总结了两套排序算法的模板,分别是冒泡排序和快速排序,和一份二分查找的模板,感兴趣的朋友可以了解一下,点此进入


    十六进制转八进制

    在这里插入图片描述

    对于进制转换,python也有相应的内置函数供我们使用。题目要求是十六进制转八进制,那么我们需要先将十六进制数转换成十进制,然后再将十进制数转换成八进制。

    十六进制转换为十进制是使用int函数——int(“十六进制数”, 16),其中第一个参数是十六进制数的字符串,第二个参数是声明这是一个十六进制数。同理,八进制转十进制,二进制转十进制,都是以同样的方式进行处理。

    转换成十进制后使用oct函数,将十进制数转换成八进制数。

    注意,通过oct函数转换成八进制数后会有前缀“0o”表示这是一个八进制数,但题目规定不能有前缀,因此需要使用切片将其去除。

    step = int(input())
    nums = []
    for i in range(step):
        nums.append(oct(int(f"{input()}",16)))
    for i in nums:
        print(i[2:])
    

    十六进制转十进制

    在这里插入图片描述

    理解完上一题后这一题就不难了,同样使用python内置函数求解。

    h = input()
    print(int(h,16))
    

    十进制转十六进制

    在这里插入图片描述
    python内置函数hex可以将十进制数转换成十六进制数。同样的使用hex函数转换后会有个前缀,“0x”表示这是一个十六进制的数,但题目要求不能有前缀,所以我们需要用切片将其去除。另外,题目要求字母要大写,而经过hex函数转换过来的是小写字母,因此,我们需要使用upper函数将字母转换为大写。

    print(f"{hex(int(input()))[2:].upper()}")
    

    特殊回文数

    在这里插入图片描述
    回文数相当于左右对称,也就是说右边出现过的数字,左边都出现过。那么我们求一半的数字就能得出整个回文数了。

    我们研究一下回文数可以发现,对于六位数的回文数而言,每个数都出现过两遍,右边的数字是左边数字倒序后的情况。比如123321,左边数字就是123 ,倒序之后就是321,那么把他们拼起来就是123321了。**对于五位数而言,除中间数字出现过一遍外,其他数字都出现过两遍。**而且右边的数字是左边数字除去最后一个数的倒序。比如12321,左边数字同样是123,右边数字是21 ,21 相当于123除去最后一个数字后变成12 然后倒序形成的21。

    那么我们遍历所有三位数即可。获取三位数上的每一个数字,比较他们的和是否与正整数n相等,如果相等则输出。

    需要注意的是,题目要求按顺序输出,而以这种思路输出的话并不是有序的,因为有五位数和六位数。所以我们要先将回文数存储到数组中,然后排个序,最后再输出。

    su = int(input())
    result = []
    
    for i in range(100,1000):
        
        g = i % 10
        s = i // 10 % 10
        b = i // 100
        
        
        suit1 = 2 * (s+b) + g  # 5位数,除中间那个数外其他数出现过两遍
    
        suit2 = 2 * (g+s+b) # 6位数,每个数都出现过两遍
     
        if suit1 == su:
            
            i = str(i)
            num = int(i+i[:-1][::-1]) # i[:-1][::-1]表示得到除最后一个数外的倒序排列
            result.append(num)
    
        # 当su = 2 时,两种可能均可出现,所以这里不能用elif
        if suit2 == su:
            
            i = str(i)
            num = int(i+i[::-1])
            result.append(num)
    
    result.sort()
    for i in result:
        print(i)
    

    特殊的数字

    在这里插入图片描述
    依据题意, 我们获取三位数中的每一位数上的数字,然后对他们求和比较看是否相等,如果相等则输出。

    for i in range(100,1000):
        g = i % 10
        s = i // 10 % 10
        b = i //100
        if i == g ** 3 + s ** 3 + b ** 3:
            print(i)
    

    杨辉三角形

    在这里插入图片描述
    看到杨辉三角形我们很容易想到一个数等于它肩膀两数之和,通过这一性质可以得出每一行三角形元素的值。但是,这一次我没有用这个方法。

    我们知道杨辉三角左右两边对称,因此我们只要求出左半部分就能得到一整行的元素了,杨辉三角还跟组合数有关,其里面的每一个元素都能用组合数表示。第N行的第M列可以表示成C(N-1,M-1),如6在第5行的第3列,它对应的组合数就是C(5-1,3-1),即C(4,2)。
    在这里插入图片描述
    因此,我们需要定义一个求组合数的函数。C(5,2) 可以表示成 (5 x 4) / (2 x 1) 也可以表示成(5/2)x (4/1)。那么我们的组合数可以这么写:

    def C(a,b):
        if b == 0:
            return 1
        if b > a:  # 组合数性质(C(a,b) = C(a,a-b))
            b = a - b
        result = 1
        for i in range(b): # 
            result *= a / b # 注意注意要用格式化函数,避免数据丢失
            a -= 1
            b -= 1
        
        return int(round(result,0))
    

    需要特别注意的是: 涉及到除法运算时,有可能会出现小数的情况,像上面那种是特别容易出现的,那么这时候就要考虑会不会出现数据丢失了,当然,以后你都不用考虑,直接加上格式化函数,然后再转换成整型。先说说round函数的作用:保留若干位小数,round函数的第二个参数是多少就是保留多少位小数。与format函数不同的是,无论你写了保留多少位小数都会舍弃掉小数点后面的0。因为在除法中,有些数是除不尽的,这样就会造成数据丢失。举个例子,5 / 3 x 3, 5除以3后再乘3会等于5吗?,显然不等,因为电脑没有分数表示,5除以3后会得到一个数不尽的小数,既然是数不尽,而计算机又不能完全表示5/3这个数,当然会造成数据丢失了,因此 5 / 3 x 3 会很接近5 但不等于5。这时候round函数的作用来了,通过四舍五入就能够变成5.0,最后将其转换成整数,就是我们需要的结果了。其实round函数不是四舍五入,而是四舍六入,具体可以了解我的这篇文章

    既然知道了杨辉三角的两个性质,对称性与组合数,以及组合数的求解方法,那么我们就能来求杨辉三角了。

    
    ```def C(a,b):
        if b == 0:
            return 1
        if b > a:
            b = a - b
        result = 1
        for i in range(b):
            result *= a / b
            a -= 1
            b -= 1
        
        return int(round(result,0))
    
    
    step = 1  # 表示初始所在行数
    
    line = int(input())  # 表示所要达到的目标行数
    print(1)
    
    while step < line:
        nums = []
        for i in range(step//2+1):  # 根据杨辉三角的对称性,我们只要求一半的数就好了
            nums.append(C(step,i))
    
        if step % 2 == 0:  # 偶数行时,中间数就只能出现一次
            
            nums += nums[::-1][1:]
            
        else:
    
            nums += nums[::-1]  # 奇数行时,中间数能够出现两次
        for i in nums:
            print(i,end=" ")
        print()
    
        step += 1
    

    查找整数

    在这里插入图片描述
    在这题中可以使用python的find函数求解,如果找到了元素就返回其下标,否则返回-1。使用find函数的话判断如果找到了,那么下标+1即可,否则就是没找到直接返回-1.

    也能够直接使用while遍历, 如果找到了标记为已找到,然后返回下标+1,否则返回-1.

    我这里提供第二种解法。

    length = int(input())
    nums = list(map(int,input().split()))
    target = int(input())
    
    i = 0
    find = False
    while i < length :
        if nums[i] == target:
            i += 1
            find = True
            print(i)
            break
        i += 1
    if not find :
        print(-1)
    

    数列特征

    在这里插入图片描述
    这题使用python的三个函数 max,min,sum一步到位。

    length = int(input())
    
    nums = list(map(int,input().split()))
    
    print(max(nums))
    
    print(min(nums))
    
    print(sum(nums))
    

    字母图形

    在这里插入图片描述
    在这里插入图片描述
    这道题出的不好,样例没有给全,我怎么知道你要啥呢?为什么这么说?因为我不知道是要让第一行的字母循环出现,还是让26个字母从左往右依次出现,就以上面的样例为例,第7行是GFEDCBA,这是必然的,那第8行是啥?是AGFEDCB 还是 HGFEDCB ? 我们不得而知,显然两种都符合它的规律,我想应该很多人都以为是第一种情况,包括我,可真正的情况是第二种。

    既然已经知道了字母的出现方式,我们就能够制定相应的思路了。我们可以把一行图形分成两部分,左边是由A-Z的倒序排列组成,右边是第一行生成的元素,每生成新的一行,就挤掉右边的一个元素,相应的左边就添加一个元素。当完全挤掉右边元素后,接着左边的尾部元素就要把头部元素给挤走。

    N, M = map(int,input().split())
    
    # 生成26个字母,方便操作
    words = [chr(i) for i in range(65,65+26)]
    
    length = 1
    
    for i in range(N):
        
        # 当右边元素还存在时,序列由两部分组成,分别是倒序元素跟剩下元素
        if length < M:  
    
            partial_words = words[0:length][::-1] + words[1:M-i]
            
        # 如果右边元素不存在时,序列仅由倒序元素组成,此时length > M
        else:
            
            partial_words = words[length-M:length][::-1]
    
    
        length += 1
    
        print(''.join(partial_words))
    

    如果看不懂没关系,手写几遍模拟一下过程就懂了。


    01字串

    在这里插入图片描述
    要打印二进制字串,我们首先要想到十进制转二进制的函数bin,使用bin函数转换生成的二进制数会有前缀“0b”,表示这是一个二进制数,使用时要用切片将其去除。知道了如何转换成二进制数,剩下的就好办了,根据题目要求输出32行字串,很显然是0-31的二进制数,我们直接使用bin函数即可,前面的数可能不够5位,差多少个0就补多少个0补到长度为5。

    for i in range(32):
        i = bin(i)[2:]
        # 补0
        while len(i) < 5:
            i = "0"+i
        print(i)
    

    闰年判断

    在这里插入图片描述
    根据题意我们可以直接写出对应的代码。

    year = int(input())
    
    if (year % 4 == 0 and year % 100 !=0) or (year % 400 == 0):
        print("yes")
    else:
        print("no")
    

    斐波那契数列

    在这里插入图片描述
    这道题的容易想到的是递归解法,不断递归获取N-1项与N-2项,直到N=2或N=1时将结果返回。

    另一种效率更高的做法是递推。我们可以通过第一项(a)和第二项(b)求出第三项(c),然后第一项走到第二项,第二项走到第三项,这两项再相加得出第四项…以此类推。因为只要10007的余数,那么我们每次都对结果取余即可,结合代码分析一下。

    n = int(input())
    
    a = 1
    b = 1
    c = 1
    for i in range(3,n+1):
        c = (a+b) % 10007
        a = b
        b = c
    
    print(c)
    

    圆的面积

    在这里插入图片描述
    要求圆的面积,我们要用到 π ,当然,python也有对应的函数用来表示 π 。
    因为要保留7位小数,所以要用到format格式化函数。

    import math
    r = int(input())
    print(format(math.pi*r**2,".7f"))
    

    序列求和

    在这里插入图片描述
    这就是一个等差数列,我们可以通过前n项和公式求解。

    
    n = int(input())
    
    res =  n * (1+n) / 2
    
    print(int(round(res,0)))
    

    前面我们讲过在除法计算中,因为样例的类型是整型,为避免出现数据丢失,要使用round函数。

    展开全文
  • 蓝桥杯历年题型概括,包含100多道经典例题,各种算法题型,给未接触过的你一些帮助。
  • 蓝桥杯练习系统习题解答-入门训练

    万次阅读 多人点赞 2018-02-02 13:19:12
    蓝桥杯练习系统习题-入门训练 题目搜索方式:Ctrl+F—-> 输入题目名称—>定位到解答。 入门训练 A+B问题 问题描述 输入A、B,输出A+B。 说明:在“问题描述”这部分,会给出试题的意思,以及所要求的目标。 ...

    点个赞,看一看,好习惯!本文 GitHub https://github.com/OUYANGSIHAI/JavaInterview 已收录,这是我花了 3 个月总结的一线大厂 Java 面试总结,本人已拿大厂 offer。
    另外,原创文章首发在我的个人博客:blog.ouyangsihai.cn,欢迎访问。

    蓝桥杯练习系统习题-入门训练

    题目搜索方式:Ctrl+F----> 输入题目名称--->定位到解答。

    > 入门训练 A+B问题

    问题描述
    输入A、B,输出A+B。
    说明:在“问题描述”这部分,会给出试题的意思,以及所要求的目标。
    输入格式
    输入的第一行包括两个整数,由空格分隔,分别表示A、B。
    说明:“输入格式”是描述在测试你的程序时,所给的输入一定满足的格式。

    做题时你应该假设所给的输入是一定满足输入格式的要求的,所以你不需要对输入的格式进行检查。多余的格式检查可能会适得其反,使用你的程序错误。

    在测试的时候,系统会自动将输入数据输入到你的程序中,你不能给任何提示。比如,你在输入的时候提示“请输入A、B”之类的话是不需要的,这些多余的输出会使得你的程序被判定为错误。

    输出格式
    输出一行,包括一个整数,表示A+B的值。
    说明:“输出格式”是要求你的程序在输出结果的时候必须满足的格式。

    在输出时,你的程序必须满足这个格式的要求,不能少任何内容,也不能多任何内容。如果你的内容和输出格式要求的不一样,你的程序会被判断为错误,包括你输出了提示信息、中间调试信息、计时或者统计的信息等。

    样例输入
    12 45
    说明:“样例输入”给出了一组满足“输入格式”要求的输入的例子。

    这里给出的输入只是可能用来测试你的程序的一个输入,在测试的时候,还会有更多的输入用来测试你的程序。

    样例输出
    57
    说明:“样例输出”给出了一组满足“输出格式”要求的输出的例子。

    样例输出中的结果是和样例输入中的是对应的,因此,你可以使用样例的输入输出简单的检查你的程序。

    要特别指出的是,能够通过样例输入输出的程序并不一定是正确的程序,在测试的时候,会用很多组数据进行测试,而不局限于样例数据。有可能一个程序通过了样例数据,但测试的时候仍只能得0分,可能因为这个程序只在一些类似样例的特例中正确,而不具有通用性,再测试更多数据时会出现错误。

    比如,对于本题,如果你写一个程序不管输入是什么都输入57,则样例数据是对的,但是测试其他数据,哪怕输入是1和2,这个程序也输出57,则对于其他数据这个程序都不正确。

    数据规模与约定
    -10000 <= A, B <= 10000。
    说明:“数据规模与约定”中给出了试题中主要参数的范围。

    这个范围对于解题非常重要,不同的数据范围会导致试题需要使用不同的解法来解决。比如本题中给的A、B范围不大,可以使用整型(int)来保存,如果范围更大,超过int的范围,则要考虑其他方法来保存大数。

    有一些范围在方便的时候是在“问题描述”中直接给的,所以在做题时不仅要看这个范围,还要注意问题描述。

    #include <stdio.h>  
    
    int main()  
    {  
    int A, B;  
     
    scanf("%d%d", &A, &B);  
    printf("%d", A+B);  
     
    return 0;  
    }  
    
     
    //参考代码Java  
    import java.io.BufferedReader;  
    import java.io.IOException;  
    import java.io.InputStreamReader;  
    
    class Main  
    {  
    public static void main(String[] args) throws IOException  
    {  
       args = new BufferedReader(new InputStreamReader(System.in)).readLine().split(" ");  
       System.out.println(Integer.parseInt(args[0])+Integer.parseInt(args[1]));  
    }  
    }  
    

    入门训练 Fibonacci数列

    问题描述
    Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。

    当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。

    输入格式
    输入包含一个整数n。
    输出格式
    输出一行,包含一个整数,表示Fn除以10007的余数。
    说明:在本题中,答案是要求Fn除以10007的余数,因此我们只要能算出这个余数即可,而不需要先计算出Fn的准确值,再将计算的结果除以10007取余数,直接计算余数往往比先算出原数再取余简单。

    样例输入
    10
    样例输出
    55
    样例输入
    22
    样例输出
    7704
    数据规模与约定
    1 <= n <= 1,000,000。

    #include <stdio.h>  
     main()  
     {  
         unsigned long s=0,f1=1,f2=1,f3=1,n=0;  
         scanf("%d",&n);  
           
         if(n>2)  
         for(s=3;s<=n;s++)  
         {  
             f3=(f2+f1)%10007;  
             f1=f2;  
             f2=f3;  
         }  
       
         printf("%d",f3);  
         return 0;  
     }  
       
        
     //参考代码C语言  
     #include <stdlib.h>  
     #include <stdio.h>  
     #define MOD 10007  
     #define MAXN 1000001  
     int n, i, F[MAXN];  
     int main()  
     {  
         scanf("%d", &n);  
         F[1] = 1;  
         F[2] = 1;  
         for (i = 3; i <= n; ++i)  
             F[i] = (F[i-1] + F[i-2]) % MOD;  
         printf("%d\n", F[n]);  
         return 0;  
     }  
       
       
     //参考代码Java语言  
     import java.io.BufferedReader;  
     import java.io.IOException;  
     import java.io.InputStreamReader;  
     public class Main {  
         public static void main(String[] args) throws IOException{  
             BufferedReader reader=new BufferedReader(new InputStreamReader(System.in));  
             String s=reader.readLine();  
             int n=Integer.valueOf(s);  
             int f1=1,f2=1,f3=0;  
             if(n<3){  
                 System.out.print("1");  
                 return;}  
             for(int i=3;i<=n;i++)  
             {if(f1>10007)f1=f1%10007;  
             if(f2>10007)f2=f2%10007;  
             f3=f1+f2;  
             f1=f2;  
             f2=f3;  
             }  
             System.out.print(f3%10007);  
             }  
               
     }  
         
    

    入门训练 序列求和

    问题描述
    求1+2+3+…+n的值。
    输入格式
    输入包括一个整数n。
    输出格式
    输出一行,包括一个整数,表示1+2+3+…+n的值。
    样例输入
    4
    样例输出
    10
    样例输入
    100
    说明:有一些试题会给出多组样例输入输出以帮助你更好的做题。

    一般在提交之前所有这些样例都需要测试通过才行,但这不代表这几组样例数据都正确了你的程序就是完全正确的,潜在的错误可能仍然导致你的得分较低。

    样例输出
    5050
    数据规模与约定
    1 <= n <= 1,000,000,000。
    说明:请注意这里的数据规模。

    本题直接的想法是直接使用一个循环来累加,然而,当数据规模很大时,这种“暴力”的方法往往会导致超时。此时你需要想想其他方法。你可以试一试,如果使用1000000000作为你的程序的输入,你的程序是不是能在规定的上面规定的时限内运行出来。

    本题另一个要值得注意的地方是答案的大小不在你的语言默认的整型(int)范围内,如果使用整型来保存结果,会导致结果错误。

    如果你使用C++或C语言而且准备使用printf输出结果,则你的格式字符串应该写成%I64d以输出long long类型的整数。

    #include<stdio.h>  
     main()  
     {  
         long long n,s=0;  
           
         scanf("%I64d",&n);  
           
         s=(1+n)*n/2;  
       
         printf("%I64d",s);  
           
         return 0;  
     }  
       
        
     //参考代码C语言  
     #include <stdio.h>  
     int main()  
     {  
         int n;  
         long long ret = 0, tmp;  
         scanf("%d", &n);  
         tmp = n;  
         printf("%I64d", (1+tmp) * tmp / 2);  
         return 0;  
     }  
       
     //参考代码Java语言  
     import java.io.BufferedReader;  
     import java.io.IOException;  
     import java.io.InputStreamReader;  
     public class Main {  
         public static void main(String args[]) throws NumberFormatException, IOException{  
             BufferedReader strin = new BufferedReader(new InputStreamReader(System.in));  
             long i = Integer.parseInt(strin.readLine());  
             long sum = (1+i)*i/2;  
             System.out.println(sum);  
         }  
     }  
         
    

    入门训练 圆的面积

    问题描述
    给定圆的半径r,求圆的面积。
    输入格式
    输入包含一个整数r,表示圆的半径。
    输出格式
    输出一行,包含一个实数,四舍五入保留小数点后7位,表示圆的面积。
    说明:在本题中,输入是一个整数,但是输出是一个实数。

    对于实数输出的问题,请一定看清楚实数输出的要求,比如本题中要求保留小数点后7位,则你的程序必须严格的输出7位小数,输出过多或者过少的小数位数都是不行的,都会被认为错误。

    实数输出的问题如果没有特别说明,舍入都是按四舍五入进行。

    样例输入
    4
    样例输出
    50.2654825
    数据规模与约定
    1 <= r <= 10000。
    提示
    本题对精度要求较高,请注意π的值应该取较精确的值。你可以使用常量来表示π,比如PI=3.14159265358979323,也可以使用数学公式来求π,比如PI=atan(1.0)*4。

    #include <stdio.h>  
     #include <math.h>  
     #define PI atan(1.0)*4  
       
     main()  
     {  
         int r=0;  
         double s=0;  
         scanf("%d",&r);  
           
         s=PI*r*r;  
         printf("%.7f",s);  
           
         return 0;  
     }  
       
       
        
     //参考代码C语言  
     #include <stdio.h>  
     #include <math.h>  
       
     int main()  
     {  
         int r;  
         double s, PI;  
         scanf("%d", &r);  
         PI = atan(1.0) * 4;  
         s = PI * r * r;  
         printf("%.7lf", s);  
         return 0;  
     }  
       
       
     //参考代码Java语言  
     import java.io.BufferedReader;  
     import java.io.IOException;  
     import java.io.InputStreamReader;  
     import java.math.BigDecimal;  
       
       
       
       
          
     70 71    public class Main {     
         public static void main(String[] args) throws IOException {  
             // TODO Auto-generated method stub  
                 BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));  
                 BigDecimal  bg = new BigDecimal(bf.readLine());  
                 BigDecimal value = bg.multiply(bg.multiply(new BigDecimal(Math.PI))).setScale(7,BigDecimal.ROUND_HALF_UP);  
                 System.out.println(value);  
         }  
     }  
         
    

    最后,再分享我历时三个月总结的 Java 面试 + Java 后端技术学习指南,这是本人这几年及春招的总结,已经拿到了大厂 offer,整理成了一本电子书,拿去不谢,目录如下:

    现在免费分享大家,在下面我的公众号 程序员的技术圈子 回复 面试 即可获取。

    有收获?希望老铁们来个三连击,给更多的人看到这篇文章

    1、老铁们,关注我的原创微信公众号「程序员的技术圈子」,专注于 Java、数据结构和算法、微服务、中间件等技术分享,保证你看完有所收获。

    2、给俺点个赞呗,可以让更多的人看到这篇文章,顺便激励下我继续写作,嘻嘻。

    3、另外,原创文章首发在我的个人博客:blog.ouyangsihai.cn,欢迎访问。

    点赞是对我最大的鼓励
    ↓↓↓↓↓↓

    展开全文
  • 蓝桥杯练习系统习题-基础训练·全(python答案

    万次阅读 多人点赞 2019-12-25 22:25:19
    基础练习 闰年判断 问题描述 给定一个年份,判断这一年是不是闰年。 当以下情况之一满足时,这一年是闰年: 年份是4的倍数而不是100的倍数;年份是400的倍数。 其他的年份都不是闰年。 输入格式 输入包含一...
  • 蓝桥杯练习系统习题解答大全(c/c++、java完整版)

    万次阅读 多人点赞 2018-02-04 14:41:01
    基础练习(详见 算法-蓝桥杯习题(2-1)) 基础练习(详见 算法-蓝桥杯习题(2-2)) 算法训练(详见 算法-蓝桥杯习题(3-1)) 算法训练(详见 算法-蓝桥杯习题(3-2)) 算法训练(详见 算法-蓝桥杯...
  • 蓝桥杯练习题

    2014-01-22 10:49:02
    蓝桥杯 软件和信息技术专业人才大赛 官方资料 内包含:结果填空 代码填空 编程
  • 蓝桥杯”练习系统练习题答案(自己做的)

    千次阅读 多人点赞 2019-03-23 19:55:10
    蓝桥杯练习系统(写博客日期为2019.3.23,所以可能读者看到的时候,更新了新的) 这里只提供每道的我的解题代码,仅供参考。这里不会写解题思路和详解,如果有需要的话,请留言给我,我会在留言区回复。vip...
  • 蓝桥杯官网题库答案-C/C++/Java三种代码,包括VIP试题
  • 蓝桥杯基础练习Python版答案解析

    千次阅读 2020-02-06 21:17:44
    蓝桥杯基础练习Python版答案样例代码 有几个没做出来附上没做出来的图片 下面附上代码 代码不完美,没什么注释sorry了各位,讲究看吧 `在这里插入代码’’‘import math#圆的面积 def mianji(n): s=math.pinn #...
  • 2021蓝桥杯校级模拟赛习题答案&总结

    千次阅读 2021-03-18 14:22:16
    本次模拟赛习题难度比较常规,总的来说中规中举,对我这种小白都比较友好,填空基本都可以直接算出来,除了最后两道编程可能稍微需要花点时间,当然当时实在坐不住提前交卷了没能写完,欢迎大佬们评论区讨论指导...
  • 蓝桥杯练习系统试题集(一)–入门练习(含C/C++答案)软件和信息技术产业作为我国的核心产业,是经济社会发展的先导性、战略性产业,软件和信息技术产业在推进信息化和工业化融合,转变发展方式,维护国家安全等...
  • .Word 文档1、A、B、C、D、E五名学生有可能参加计算机竞赛,根据下列条件判断哪些人参加了竞赛:(1)A参加时,B也参加;(2)B和C只有一个人参加;(3)C和D或者都参加,或者都不参加;...
  • 由于 python 执行比较慢,直接使用迭代求和会导致一方面占用资源多,另一方面可能会超时。如果直接采用循环“暴力破解”,则会出现超时。此时,很适合应用数学公式(等差数列前 N 项求和公式)。...
  • [BAISC-11 十六进制转十进制](http://lx.lanqiao.cn/problem.page?gpid=T50) [BASIC-10 十进制转十六进制](http://lx.lanqiao.cn/problem.page?gpid=T49) 蓝桥杯练习系统,是一个可以备战蓝桥杯的刷题网站。...
  • Python“蓝桥杯练习试题–十六进制转十进制 #问题描述 从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。  注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。 #...
  • 方法一: import java.math.BigInteger; import java.util.*; class Main{ public static void main(String[] args) { Scanner scan=new Scanner(System.in);... int n=scan.nextInt();... BigInteger s=BigInteger...
  • 蓝桥杯练习系统习题解答-入门训练 学习网站推荐: C语言网 C语言中文网 C语言教程 题目搜索方式:Ctrl+F—-&amp;amp;amp;gt; 输入题目名称—&amp;amp;amp;gt;定位到解答。 BEGIN-1 A+B问题 问题描述 输入...
  • 蓝桥杯 文章目录蓝桥杯1. 字符逆序2. 用筛法求之N内的素数3. 字符串的输入输出处理4. 斐波那契数列(Fibonacci)5. 闰年判断6. 马虎的计算7. 不同的字串8. 三项数列求值9. 数的分解 1. 字符逆序 题目描述 将一个字符...
  • 我大一小白,第一次练蓝桥杯练习题。我的类也是main,别的也是按他明示的来的,但还是报错。后来耽误好长时间搜什么的,没结果。然后我就想它这测试系统都是大佬写的或者整的外国的,不用中文?不知道什么原因,...
  • C语言的蓝桥杯习题及解析.docx/*问题描述输入一个正整数 n,输出 n的值。其中 n1*2*3n。算法描述n可能很大,而计算机能表示的整数范围有限,需要使用高精度计算的方法。使用一个数组 A 来表示一个大整数 a,A0表示 a...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,462
精华内容 984
关键字:

蓝桥杯练习题答案

友情链接: 212132.rar