P5722 [深基4.例11] 数列求和
| #include <cstdio> |
| int main() |
| { |
| int n; |
| scanf("%d", &n); |
| int sum = 0; |
| for (int i = 1; i <= n; i++) sum += i; |
| printf("%d\n", sum); |
| return 0; |
| } |
P5718 [深基4.例2] 找最小值
| #include <cstdio> |
| int main() |
| { |
| int n; |
| scanf("%d", &n); |
| int mn = 1000; |
| for (int i = 0; i < n; ++i) { |
| int x; |
| scanf("%d", &x); |
| if (x < mn) mn = x; |
| } |
| printf("%d\n", mn); |
| return 0; |
| } |
P5724 [深基4.习5] 求极差 / 最大跨度值
| #include <cstdio> |
| #include <algorithm> |
| using namespace std; |
| int main() |
| { |
| int n; |
| scanf("%d", &n); |
| int mx = 0, mn = 1000; |
| for (int i = 0; i < n; ++i) { |
| int x; |
| scanf("%d", &x); |
| mx = max(mx, x); |
| mn = min(mn, x); |
| } |
| printf("%d\n", mx - mn); |
| return 0; |
| } |
P1085 [NOIP2004 普及组] 不高兴的津津
| #include <cstdio> |
| int main() |
| { |
| int unhappy = 0; |
| int day = 0; |
| for (int i = 1; i <= 7; i++) { |
| int a, b; |
| scanf("%d%d", &a, &b); |
| if (a + b > 8 && a + b > unhappy) { |
| unhappy = a + b; |
| day = i; |
| } |
| } |
| printf("%d\n", day); |
| return 0; |
| } |
P5719 [深基4.例3] 分类平均
| #include <cstdio> |
| int main() |
| { |
| int n, k; |
| scanf("%d%d", &n, &k); |
| int sum1 = 0, cnt1 = 0; |
| int sum2 = 0, cnt2 = 0; |
| for (int i = 1; i <= n; ++i) { |
| if (i % k == 0) { |
| sum1 += i; |
| ++cnt1; |
| } else { |
| sum2 += i; |
| ++cnt2; |
| } |
| } |
| printf("%.1f %.1f\n", sum1 * 1.0 / cnt1, sum2 * 1.0 / cnt2); |
| return 0; |
| } |
P1075 [NOIP2012 普及组] 质因数分解
| #include <cstdio> |
| int main() |
| { |
| int n; |
| scanf("%d", &n); |
| for (int i = 2; i * i <= n; ++i) |
| if (n % i == 0) { |
| printf("%d\n", n / i); |
| break; |
| } |
| return 0; |
| } |
P5720 [深基4.例4] 一尺之棰
| #include <cstdio> |
| int main() |
| { |
| int a; |
| scanf("%d", &a); |
| int cur = 1; |
| while (a > 1) { |
| a /= 2; |
| ++cur; |
| } |
| printf("%d\n", cur); |
| return 0; |
| } |
P1035 [NOIP2002 普及组] 级数求和
| #include <cstdio> |
| int main() |
| { |
| int k; |
| scanf("%d", &k); |
| double s = 0; |
| int n = 0; |
| while (s <= k) { |
| n++; |
| s += 1.0 / n; |
| } |
| printf("%d\n", n); |
| return 0; |
| } |
P2669 [NOIP2015 普及组] 金币
| #include <cstdio> |
| int main() |
| { |
| int k; |
| scanf("%d", &k); |
| int sum = 0; |
| int coin = 1; |
| int day = 0; |
| for (int i = 1; i <= k; i++) { |
| sum += coin; |
| day++; |
| if (day == coin) { |
| coin++; |
| day = 0; |
| } |
| } |
| printf("%d\n", sum); |
| return 0; |
| } |
P1307 [NOIP2011 普及组] 数字反转
| #include <cstdio> |
| int main() |
| { |
| int n; |
| scanf("%d", &n); |
| if (n < 0) { |
| printf("-"); |
| n = -n; |
| } |
| int ans = 0; |
| while (n > 0) { |
| ans = ans * 10 + n % 10; |
| n /= 10; |
| } |
| printf("%d\n", ans); |
| return 0; |
| } |
P5721 [深基4.例6] 数字直角三角形
| #include <cstdio> |
| int main() |
| { |
| int n; |
| scanf("%d", &n); |
| int num = 0; |
| for (int i = 1; i <= n; i++) { |
| for (int j = 1; j <= n - i + 1; j++) { |
| num++; |
| printf("%02d", num); |
| } |
| printf("\n"); |
| } |
| return 0; |
| } |
P5725 [深基4.习8] 求三角形
| #include <cstdio> |
| int main() |
| { |
| int n; |
| scanf("%d", &n); |
| int num = 0; |
| for (int i = 1; i <= n; i++) { |
| for (int j = 1; j <= n; j++) { |
| num++; |
| printf("%02d", num); |
| } |
| printf("\n"); |
| } |
| printf("\n"); |
| num = 0; |
| for (int i = 1; i <= n; i++) { |
| for (int j = 1; j <= n - i; j++) printf(" "); |
| for (int j = 1; j <= i; j++) { |
| num++; |
| printf("%02d", num); |
| } |
| printf("\n"); |
| } |
| } |
P1980 [NOIP2013 普及组] 计数问题
| #include <cstdio> |
| int main() |
| { |
| int n, x; |
| scanf("%d%d", &n, &x); |
| int ans = 0; |
| for (int i = 1; i <= n; i++) { |
| int t = i; |
| while (t > 0) { |
| if (t % 10 == x) ans++; |
| t /= 10; |
| } |
| } |
| printf("%d\n", ans); |
| return 0; |
| } |
P4956 [COCI2017-2018#6] Davor
| #include <cstdio> |
| int main() |
| { |
| int n; |
| scanf("%d", &n); |
| n = n / 52 / 7; |
| for (int x = 100; x >= 1; x--) { |
| if ((n - x) % 3 == 0) { |
| int k = (n - x) / 3; |
| if (k > 0) { |
| printf("%d\n%d\n", x, k); |
| break; |
| } |
| } |
| } |
| return 0; |
| } |
P1420 最长连号
| #include <cstdio> |
| int main() |
| { |
| int n; scanf("%d", &n); |
| int last = -1; |
| int cnt = 0, ans = 1; |
| for (int i = 1; i <= n; i++) { |
| int x; scanf("%d", &x); |
| |
| if (i == 1 || x == last + 1) { |
| cnt++; |
| } else { |
| cnt = 1; |
| } |
| if (cnt > ans) ans = cnt; |
| last = x; |
| } |
| printf("%d\n", ans); |
| return 0; |
| } |
| #include <cstdio> |
| int main() |
| { |
| int n; scanf("%d", &n); |
| int last = -1; |
| int cnt = 0, ans = 1; |
| for (int i = 1; i <= n; i++) { |
| int x; scanf("%d", &x); |
| |
| if (i == 1 || x == last + 1) { |
| cnt++; |
| if (cnt > ans) ans = cnt; |
| } else { |
| cnt = 1; |
| } |
| last = x; |
| } |
| printf("%d\n", ans); |
| return 0; |
| } |
| #include <cstdio> |
| int main() |
| { |
| int n; scanf("%d", &n); |
| int last = -1; |
| int cnt = 0, ans = 1; |
| for (int i = 1; i <= n; i++) { |
| int x; scanf("%d", &x); |
| |
| if (i == 1 || x == last + 1) { |
| cnt++; |
| } else { |
| if (cnt > ans) ans = cnt; |
| cnt = 1; |
| } |
| last = x; |
| } |
| if (cnt > ans) ans = cnt; |
| printf("%d\n", ans); |
| return 0; |
| } |
P5726 [深基4.例9] 打分
| #include <cstdio> |
| #include <algorithm> |
| using namespace std; |
| int main() |
| { |
| int n; |
| scanf("%d", &n); |
| int sum = 0; |
| int mx = 0; |
| int mn = 10; |
| for (int i = 0; i < n; ++i) { |
| int x; |
| scanf("%d", &x); |
| sum += x; |
| mx = max(mx, x); |
| mn = min(mn, x); |
| } |
| printf("%.2f\n", 1.0 * (sum - mx - mn) / (n - 2)); |
| return 0; |
| } |
解题思路
“每隔 个取 个”等价于每 个看成一组,每组里取走第一个。所以如果某一轮开始前有 个苹果,这一轮会取走 个。因此针对第一个问题,可以循环迭代 ,直到 变成 ,则循环次数就是取完的天数。这个循环次数最多大约是 ,大约 多次循环。
对于第二个问题,最后一个苹果必然属于最后一组,要让它被取走,说明它是最后一组仅有的一个苹果。因此,拿走标号为 的苹果的那一天,当时拿之前苹果数量对 取余之后为 。
参考代码
| #include <cstdio> |
| int main() |
| { |
| int n; scanf("%d", &n); |
| int ans = 0, days = 0; |
| while (n > 0) { |
| ans++; |
| if (days == 0 && n % 3 == 1) days = ans; |
| n = n - (n + 2) / 3; |
| } |
| printf("%d %d\n", ans, days); |
| return 0; |
| } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?