【每天例题】蓝桥杯 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小于等于卡片种类数目的最大人数,便输出对应的卡片种类。
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #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; } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】