蓝桥杯 PREV-284 杨辉三角形【第十二届】【省赛】

2023-10-31 13:48

本文主要是介绍蓝桥杯 PREV-284 杨辉三角形【第十二届】【省赛】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

【分析】

因为这道题的N最大为10亿,如果遍历10亿行肯定会超时,先看一下杨辉三角形的规律。

可以发现每一行都是先递增后递减的,所以当某个值已经大于10亿时就说明不在这一行了。接下来看如何找这个大于10亿的值比较好。首先第一列都是1,第二列(1,2,3...),第三列是的值为(1+2+3...),即(n*n+1)/2,这样解出来n=44721,再算上前面两行,可以定义n为44724行。也就是说,当算到这一行时,第三个数已经超过10亿了,由于此时数列不管向后还是向下都是递增的,所以n只能出现在下一行的第二列,而第二列的值所在位置则正好是前面那些行所有数字的个数+2,即(n*n+1)+2。

另外需要注意变量要定义为long。


import java.util.Scanner;public class Main {public static void main(String[] args) {int  i, j;Scanner scanner = new Scanner(System.in);long n = scanner.nextLong();long[] a = new long[44725];a[0] = a[1] = 1L;Long cnt;if(n == 1) {System.out.println(1);return;}else{cnt = 3L;for(i = 3; i < 44725; i++){for(j = i - 1; j >= 1; j --){a[j] += a[j - 1];if(a[j] == n){System.out.println(cnt + i - j);return;}}cnt += i;}}System.out.println((n + 1) * n / 2 + 2);}}

这篇关于蓝桥杯 PREV-284 杨辉三角形【第十二届】【省赛】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/315778

相关文章

JAVA利用顺序表实现“杨辉三角”的思路及代码示例

《JAVA利用顺序表实现“杨辉三角”的思路及代码示例》杨辉三角形是中国古代数学的杰出研究成果之一,是我国北宋数学家贾宪于1050年首先发现并使用的,:本文主要介绍JAVA利用顺序表实现杨辉三角的思... 目录一:“杨辉三角”题目链接二:题解代码:三:题解思路:总结一:“杨辉三角”题目链接题目链接:点击这里

C语言蓝桥杯

一、语言基础 竞赛常用库函数 最值查询 min_element和max_element在vector(迭代器的使用) nth_element函数的使用 例题lanqiao OJ 497成绩分析 第一种用min_element和max_element函数的写法 第二种用min和max的写法 二分查找 二分查找只能对数组操作 binary_s

c语言——用一维数组输出杨辉三角形

一.代码 #include <stdio.h>int Num[100];int Hang;int Lie;int a;int Flag;int main() {Lie = 1;Hang = 1;a = 0;while (1) {//列1为1if (Lie == 1) {Num[1] = 1;Lie++;}//数据存到数组里面while (Hang >= Lie && Hang !=

CF#284 (Div. 2) C.(几何规律)

题目链接:http://codeforces.com/contest/499/problem/C 解题思路: 把两个点的坐标分别带入方程组,如果最后两个值相乘为负,即异号,计数器++。其中有一个有趣的现象,从A到B的最短步数,可以变化为求A和B之间夹了多少条直线,那么最后只要求出直线数,即可求出最小步数。 如果一条直线夹在A和B中间,那么把A和B的坐标带入后,所得值相乘一定为负。数据很

CF #284 (Div. 2) A.(模拟)

题目链接:http://codeforces.com/contest/499/problem/A 解题思路: 模拟过程,如果step + x < k[i].l,那么跳过x分钟;否则计数器 + k[i].l - step + (k[i].r - k[i].l),更新step为k[i].r + 1,同时i ++ 。 完整代码: #include <functional>#in

CF#284 (Div. 2) B.(暴力)

题目链接:http://codeforces.com/contest/499/problem/B 解题思路: 开一个is变量记录每组单词最后应该输出哪个。最后每次把原来的数组暴力扫一遍即可。 完整代码: #include <functional>#include <algorithm>#include <iostream>#include <fstream>#inc

找不同-第15届蓝桥省赛Scratch初级组真题第4题

[导读]:超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成,后续会不定期解读蓝桥杯真题,这是Scratch蓝桥杯真题解析第183讲。 如果想持续关注Scratch蓝桥真题解读,可以点击《Scratch蓝桥杯历年真题》并订阅合集,查阅教程更方便。 第15届蓝桥杯省赛已于2024年8月24日落下帷幕,编程题一共有5题,分别如下: 猪八戒落地 游乐场 画西瓜 找不同 消

【蓝桥杯嵌入式(一)程序框架和调度器】

蓝桥杯嵌入式(一)程序框架和调度器 序、代码命名规则零、STM32和8051⼀、软件及环境安装⼆、⼯程框架搭建1.时钟配置2、SYS配置3、⼯程配置4、NVIC配置5.、Keil配置 三、系统初始化四、任务调度器 链接: 视频出处 序、代码命名规则 以下是一些常见的举例 零、STM32和8051 链接: 8位和32位单片机最本质区别 ⼀、软件及环境安装

【蓝桥杯嵌入式(二)Led、Key、Lcd】

蓝桥杯嵌入式(二)Led、Key、Lcd 五、Led模块1.原理图配置2. 知识点3.底层代码 六、Key模块1.原理图配置2.知识点3.底层代码底层代码(四⾏代码版本)底层代码(状态机版本) 七、LCD模块1.原理图配置2.知识点底层代码 五、Led模块 1.原理图配置 2. 知识点 链接: 上拉电阻的通俗解释 链接: 单⽚机怎么输出⾼电平!推挽输出和开

蓝桥杯:整数删除

// 蓝桥杯整数删除.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include<stdio.h>#define MAX 100void findmin(int a[],int n,int& pos){int min=a[0];pos=0;//pos=0我开始忘了,特别注意