欢迎大家订阅我的专栏:算法题解:C++与Python实现!
本专栏旨在帮助大家从基础到进阶 ,逐步提升编程能力,助力信息学竞赛备战!
专栏特色
1.经典算法练习:根据信息学竞赛大纲,精心挑选经典算法题目,提供清晰的代码实现与详细指导,帮助您夯实算法基础。
2.系统化学习路径:按照算法类别和难度分级,从基础到进阶,循序渐进,帮助您全面提升编程能力与算法思维。
适合人群:
- 准备参加蓝桥杯、GESP、CSP-J、CSP-S等信息学竞赛的学生
- 希望系统学习C++/Python编程的初学者
- 想要提升算法与编程能力的编程爱好者
附上汇总帖:历年CSP-X复赛真题解析 | 汇总
【题目来源】
洛谷:[B4079 CSP-X2019 山东] 金币 - 洛谷
【题目描述】
乔治在梦中来到了一个神奇部落,这个部落的神树具有奇特的功能:对于每一位新朋友,都会获赠金币,而且金币的数量会随时间的延续而增加:
- 第1 11周,每天1 11枚金币;
- 第2 22周,每天2 22枚金币;
- 第3 33周,每天3 33枚金币;
- ……
请问:至少多少天,乔治的金币数量达到n nn枚?
【输入】
一行,只有一个正整数n nn。
【输出】
一行,一个整数,表示金币达到n nn枚所需的最少天数。
【输入样例】
30【输出样例】
17【算法标签】
《洛谷 B4079 金币》 #二分# #CSP-X小学组# #2019# #山东#
【代码详解】
#include<bits/stdc++.h>usingnamespacestd;#defineintlonglong// 将int重新定义为long long类型intn,ans;// n: 输入的天数, ans: 当前计算的总训练次数signedmain()// 因为使用了#define int long long, 所以用signed main{cin>>n;// 输入总天数intt=1;// 当前周期数,每个周期包含若干天while(1)// 无限循环{ans+=7*t;// 计算到第t个周期的总训练次数,每个周期训练7*t次if(ans>n)break;// 如果总训练次数超过n,跳出循环t++;// 进入下一个周期}// 输出结果// (t-1)*7: 前面完整周期的总天数// 7 - (ans-n)/t: 当前周期中的第几天// ans-n: 超出n的训练次数// (ans-n)/t: 需要回退的天数cout<<(t-1)*7+7-(ans-n)/t<<endl;return0;}【运行结果】
30 17