首页 > 编程语言 >【每天例题】蓝桥杯 c++ 卡片

【每天例题】蓝桥杯 c++ 卡片

时间:2023-10-24 18:45:14浏览次数:38  
标签:同学 卡片 int 两张 蓝桥 小蓝 c++ 例题

卡片

题目

小蓝有k种卡片,—个班有n位同学,小蓝给每位同学发了两张卡片,—位同学的两张卡片可能是同一种,也可能是不同种,两张卡片没有顺序。没有两位同学的卡片都是一样的。 小蓝有k种卡片,-个班有n位同学,小蓝给每位同学发了两张卡片,-位同学的两张卡片可能是同一种,也可能是不同种,两张卡片没有顺序.没有两位同学的卡片都是一样的.
给定n,请问小蓝的卡片至少有多少种? 给定n,请问小蓝的卡片至少有多少种?
输入格式
输入—行包含—个正整数表示n。 输入一行包含一个正整数表示n.
输出格式
输出—行包含一个整数表示答案。 输出一行包含一个整数表示答案.
样例输入

6
样例输出 

3
样例说明
小朋友们手中的卡片可能是: (1,1),(1,2),(1,3),(2,2),(2,3),(3,3) 小朋友们手中的卡片可能是:(1,1),(1,2),(1,3),(2,2),(2,3),(3,3)

蓝桥杯 卡片

题目分析

这道题归根到底就是找规律,我们另x为参加人的数目,y为卡片种类

x y
0 0
1 1
2 2
3 2
4 3
5 3
6 3
7 4
8 4
9 4
10 4
11 5
12 5
13 5
14 5
15 5

从表格中我们可以发现,设i为卡片种类数目,则存在如下关系:

a[0]=0;  a[1]=1;   a[2]=3;   a[3]=6;   a[4]=10;    a[5]=15; ........ a[i]=a[i-1]+i;

当输入的人数x小于等于卡片种类数目的最大人数,便输出对应的卡片种类。

代码

#include <iostream>
using namespace std;
int main()
{
  int a[100000];
  a[0]=0;
  a[1]=1;
  int n,i;
  cin>>n;
  for(i=2;i<100000;i++)
  {
    a[i]=a[i-1]+i;
    if(n<=a[i])
    {
      break;
    }
  }
  cout<<i;
  return 0;
}

  

标签:同学,卡片,int,两张,蓝桥,小蓝,c++,例题
From: https://www.cnblogs.com/hcrzhi/p/17785496.html

相关文章

  • 【每日例题】蓝桥杯 c++ 奇数倍数
    奇数倍数题目本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。请你找到最小的整数X同时满足:1.X是2019的整倍数;2.X的每—位数字都是奇数。运行限制·最大运行时间:1s·最大运行内存:128M蓝桥杯奇数倍数题目分析针对这个题目,要判断两个条件:1.这个数......
  • C++算法:前缀和、前缀乘积、前缀异或的原理、源码及测试用例
    相关源码测试用例下载包括4个压缩包,初始代码,实现前缀和,实现前缀积,实现前缀异或。都是在前者的基础上修改的。原理长度为n的数组nums,共有n+1个以nums[0]开始的子数组。索引范围分别为[0,i),i取值区间[0,n]。preSum[i]记录子数组[0,i)的和。比如:nums={1,2,3,4},则preSum={0,1,3,6......
  • C++前缀和算法应用:和至少为 K 的最短子数组的原理、源码及测试用例
    题目给你一个整数数组nums和一个整数k,找出nums中和至少为k的最短非空子数组,并返回该子数组的长度。如果不存在这样的子数组,返回-1。子数组是数组中连续的一部分。示例1:输入:nums=[1],k=1输出:1示例2:输入:nums=[1,2],k=4输出:-1示例3:输入:nums=......
  • C++前缀和算法:构造乘积矩阵
    题目给你一个下标从0开始、大小为n*m的二维整数矩阵grid,定义一个下标从0开始、大小为n*m的的二维矩阵p。如果满足以下条件,则称p为grid的乘积矩阵:对于每个元素p[i][j],它的值等于除了grid[i][j]外所有元素的乘积。乘积对12345取余数。返回grid的乘积......
  • C++算法:二叉树的序列化与反序列化
    #题目序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据。请设计一个算法来实现二叉树的序列化与反序列化。这里不限定你的序列/反序列化算法执行逻......
  • C++算法前缀和的应用:得分最高的最小轮调的原理、源码及测试用例
    题目给你一个数组nums,我们可以将它按一个非负整数k进行轮调,这样可以使数组变为[nums[k],nums[k+1],…nums[nums.length-1],nums[0],nums[1],…,nums[k-1]]的形式。此后,任何值小于或等于其索引的项都可以记作一分。例如,数组为nums=[2,4,1,3,0],我们按k=2进行......
  • C++算法:数据流的中位数
    题目中位数是有序整数列表中的中间值。如果列表的大小是偶数,则没有中间值,中位数是两个中间值的平均值。例如arr=[2,3,4]的中位数是3。例如arr=[2,3]的中位数是(2+3)/2=2.5。实现MedianFinder类:MedianFinder()初始化MedianFinder对象。voidaddNum(int......
  • C++算法前缀和的应用:分割数组的最大值的原理、源码及测试用例
    分割数组的最大值二分过些天整理基础知识题目给定一个非负整数数组nums和一个整数m,你需要将这个数组分成m个非空的连续子数组。设计一个算法使得这m个子数组各自和的最大值最小。示例1:输入:nums=[7,2,5,10,8],m=2输出:18解释:一共有四种方法将nums分割为2个......
  • C++算法:给表达式添加运算符
    题目给定一个仅包含数字0-9的字符串num和一个目标值整数target,在num的数字之间添加二元运算符(不是一元)+、-或*,返回所有能够得到target的表达式。注意,返回表达式中的操作数不应该包含前导零。示例1:输入:num=“123”,target=6输出:[“1+2+3”,“123......
  • C++数位算法:数字1的个数
    题目给定一个整数n,计算所有小于等于n的非负整数中数字1出现的个数。示例1:输入:n=13输出:6示例2:输入:n=0输出:0提示:0<=n<=1092023年1月版classSolution{public:intcountDigitOne(intn){intiNum=0;intiMul=1;for(inti=0;i<9;i++){......