首页 > 其他分享 >数字游戏(蓝桥杯历届真题)

数字游戏(蓝桥杯历届真题)

时间:2024-03-30 15:33:50浏览次数:18  
标签:同学 11 13 数字 真题 栋栋 蓝桥 ## 历届

##题目描述

栋栋正在和同学们玩一个数字游戏。

游戏的规则是这样的:栋栋和同学们一共n个人围坐在一圈。栋栋首先说出数字1。接下来,坐在栋栋左手边的同学要说下一个数字2。再下面的一个同学要从上一个同学说的数字往下数两个数说出来,也就是说4。下一个同学要往下数三个数,说7。依次类推。

为了使数字不至于太大,栋栋和同学们约定,当在心中数到  k-1  时,下一个数字从0开始数。例如,当k=13时,栋栋和同学们报出的前几个数依次为:
1,  2,  4,  7,  11,  3,  9,  3,  11,  7。

游戏进行了一会儿,栋栋想知道,到目前为止,他所有说出的数字的总和是多少。

样例说明
栋栋说出的数依次为1,  7,  9,和为17。

##输入格式

输入的第一行包含三个整数  n,k,T,其中  n  和  k  的意义如上面所述,T  表示到目前为止栋栋一共说出的数字个数。 
数据规模和约定
1  <   n,k,T  <   1,000,000;

##输出格式

输出一行,包含一个整数,表示栋栋说出所有数的和。

##样例输入

3 13 3

##样例输出

17

解题思路

       由题意可知,这个题目的实质是等差数列的求和,且d=1;在不考虑k的情况下,假设f(n)为每位同学喊得数字,如下图所示。

f(n)
11+0
21+0+1
41+0+1+2
71+0+1+2+3

11

1+0+1+2+3+4
161+0+1+2+3+4+5
221+0+1+2+3+4+5+6
291+0+1+2+3+4+5+6+7
371+0+1+2+3+4+5+6+7+8
461+0+1+2+3+4+5+6+7+8+9

         已知等差数列的求和公式为S=a1*n+n*(n-1)*d/2,可得f(n)=n*(n-1)/2+1;然后考虑题目中k的问题可得f(n)=(n*(n-1)/2+1)%k。

然后是东东喊得数是如何得出的,当n=3 k=13 T=3时如下图中红色的数字为东东行出的数字。

0123456789
124711393117

假设东东喊出的数字用t来表示:

t1=1;

t2=((1+2+3)+1)%13=((1+2+3)+t1)%k=7;

t3=((4+5+6)+7)%13=((4+5+6)+t2)%k=9;

1+2+3和4+5+6分别可以看作为首相分别为1,4末项分别为3,6的等差数列求和,则可得t=(((a+a+(n-1))*n/2+t)%k。

参考代码如下:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    long long sum=1,a=1,t=1;//t表示东东每次说的数 
    int n,k,T;//T表示目前为止一共说出的数字个数
    cin>>n>>k>>T;
    for(int i=1;i<T;i++)
    {
    t=(((a+a+(n-1))*n/2)+t)%k;
    sum+=t;
    a+=n;
     } 
    cout<<sum<<endl;
    
    return 0;
 } 

标签:同学,11,13,数字,真题,栋栋,蓝桥,##,历届
From: https://blog.csdn.net/m0_75080600/article/details/137172889

相关文章

  • 备战蓝桥杯第三模块之二分模版+二分练题
    前言因本系列是为了蓝桥杯前几天快速过知识点所准备,所以有些部分会很简洁模版整数二分intMid(inta,intb){intl=1;intr=1e9+10;while(l<r){intmid=l+r>>2;if(a/mid<=b)//这儿一般情况下看需要用mid判断什么条件r=mid;elsel=......
  • 备战蓝桥杯第四模块之贪心
    前言本系列只是为了蓝桥杯前几天快速过一遍知识思路遇到贪心想想哪一种方案是最优解。需不需要排序区间选点题目数轴上有n个闭区间,取尽量少的点,使得每一个区间都至少有一个点思路1.优先选择那些终点较早的区间(右端点从小到大排序)2.逐一分析每一段区间是否包含点,如果......
  • 2024年03月CCF-GESP编程能力等级认证C++编程八级真题解析
    本文收录于专栏《C++等级认证CCF-GESP真题解析》,专栏总目录:点这里。订阅后可阅读专栏内所有文章。一、单选题(每题2分,共30分)第1题为丰富食堂菜谱,炒菜部进行头脑风暴。肉类有鸡肉、牛肉、羊肉、猪肉4种,切法有肉排、肉块、肉末3种,配菜有圆白菜、油菜、豆腐3种,辣度有......
  • 2024年03月CCF-GESP编程能力等级认证C++编程七级真题解析
    本文收录于专栏《C++等级认证CCF-GESP真题解析》,专栏总目录:点这里。订阅后可阅读专栏内所有文章。一、单选题(每题2分,共30分)第1题下列关于排序的说法,正确的是()。A.冒泡排序是最快的排序算法之一。B.快速排序通常是不稳定的。C.最差情况,N个元素做归并排序......
  • NO12 蓝桥杯单片机之DS1302的使用
    1DS1302是什么DS1302由两块存储器组成,一个是日历时钟寄存器还有一个是31位的静态RAM存储器。而在蓝桥杯中常考的就是日历时钟寄存器,故这里只介绍日历时钟寄存器。简单来说,其就是一个“电子表”,他会自动的实时记录时间,而不需要像我们之前运用定时器做的时钟一样,要自己来设计......
  • 蓝桥杯嵌入式之AT24C02各种数据的读写
    一、1字节8为的读写u8a=10;u8temp;eeprom_write(0x00,a); temp=eeprom_read(0x00); sprintf(text,"  temp=%d ",temp);      LCD_DisplayStringLine(Line1,(u8*)text);      memset(text,'\0',strlen(text));二、对于uint16_t、int16_t......
  • 蓝桥杯 试题 基础练习 数列特征
    问题描述给出n个数,找出这n个数的最大值,最小值,和。输入格式第一行为整数n,表示数的个数。第二行有n个数,为给定的n个数,每个数的绝对值都小于10000。输出格式输出三行,每行一个整数。第一行表示这些数中的最大值,第二行表示这些数中的最小值,第三行表示这些数的和。样例输入5......
  • 蓝桥杯 试题 基础练习 查找整数
    问题描述给出一个包含n个整数的数列,问整数a在数列中的第一次出现是第几个。输入格式第一行包含一个整数n。第二行包含n个非负整数,为给定的数列,数列中的每个数都不大于10000。第三行包含一个整数a,为待查找的数。输出格式如果a在数列中出现了,输出它第一次出现的位置(位置......
  • 【洛谷 P8738】[蓝桥杯 2020 国 C] 天干地支 题解(字符串+数学+模运算)
    [蓝桥杯2020国C]天干地支题目描述古代中国使用天干地支来记录当前的年份。天干一共有十个,分别为:甲(jiǎ)、乙(yǐ)、丙(bǐng)、丁(dīng)、戊(wù)、己(jǐ)、庚(gēng)、辛(xīn)、壬(rén)、癸(guǐ)。地支一共有十二个,分别为:子(zǐ)、丑(chǒu)、寅(yín)、卯(mǎo)、辰(chén)、巳(sì)、午(wǔ......
  • 【洛谷 P8654】[蓝桥杯 2017 国 C] 合根植物 题解(并查集)
    [蓝桥杯2017国C]合根植物题目描述w星球的一个种植园,被分成m×nm\timesnm×n个小格子(东西方向......