当前位置: 首页 > news >正文

【C语言刷题】第十一天:加量加餐继续,代码题训练,融会贯通IO模式

 


 🔥个人主页:艾莉丝努力练剑

❄专栏传送门:《C语言》、《数据结构与算法》、C语言刷题12天IO强训、LeetCode代码强化刷题

🍉学习方向:C/C++方向

⭐️人生格言:为天地立心,为生民立命,为往圣继绝学,为万世开太平 



前言:上一篇博客又带大家刷了一些相对来说简单的代码题目,本篇文章我们将继续练习下面的题目。这些题目的难度已经有的挖了大坑,大家做的时候要留意,如果做不出来,看了代码演示后要自己多敲几遍,去理解代码的逻辑。

宇宙安全声明:鉴于博主能力有限,本专栏适用于代码小白刷题,大佬们多多包涵(抱拳)!


目录

正文

一、小乐乐与进制转换

二、小乐乐求和

(一)题目

 (二)思路

1、思路1

2、思路2

三、小乐乐定闹钟

四、小乐乐排电梯

五、小乐乐与欧几里得

(一)题目

 (二)两种方法

1、暴力法

2、辗转相除法

六、小乐乐改数字

七、小乐乐走台阶

八、小乐乐与序列

九、小乐乐与字符串

十、小乐乐找最大数

十一、小乐乐转换成绩

十二、小乐乐计算函数

结尾


正文

一、小乐乐与进制转换

BC111 小乐乐与进制转换

#define  _CRT_SECURE_NO_WARNINGS  1#include <stdio.h>
int main()
{int n = 0;int arr[40] = { 0 };int i = 0;scanf("%d", &n);while (n){arr[i++] = n % 6;n /= 6;}for (i--; i >= 0; i--){printf("%d", arr[i]);}return 0;
}

 

二、小乐乐求和

BC112 小乐乐求和

(一)题目

 (二)思路

1、思路1:
#define  _CRT_SECURE_NO_WARNINGS  1//代码1
#include <stdio.h>int main()
{long long i = 0;long long sum = 0;long long n = 0;scanf("%lld", &n);for (i = 1; i <= n; i++){sum += i;}printf("%lld\n", sum);return 0;
}
2、思路2:
//代码2
#include <stdio.h>
int main()
{long long n = 0;scanf("%lld", &n);printf("%lld", (1 + n) * n / 2);return 0;
}

 

三、小乐乐定闹钟

BC113 小乐乐定闹钟

#define  _CRT_SECURE_NO_WARNINGS  1#include <stdio.h>
int main()
{int h = 0;int m = 0;int k = 0;scanf("%d:%d %d", &h, &m, &k);h = ((m + k) / 60 + h) % 24;m = (m + k) % 60;printf("%02d:%02d\n", h, m);return 0;
}

 

四、小乐乐排电梯

BC114 小乐乐排电梯

#define  _CRT_SECURE_NO_WARNINGS  1#include <stdio.h>
int main()
{int n = 0;scanf("%d", &n);printf("%d\n", n / 12 * 4 + 2);return 0;
}

 

五、小乐乐与欧几里得

BC115 小乐乐与欧几里得

(一)题目

 (二)两种方法

1、暴力法
#define  _CRT_SECURE_NO_WARNINGS  1#include<stdio.h>
//暴力求解
//耗时太久,不满足条件
int main()
{long long n = 0;long long m = 0;long long tmp = 0;scanf("%lld %lld", &n, &m);long long max = m > n ? n : m;while (max){if (m % max == 0 && n % max == 0){break;}max--;}long long min = m > n ? m : n;while (min){if (min % m == 0 && min % n == 0){break;}min++;}printf("%lld\n", max + min);return 0;
}
2、辗转相除法
//辗转相除法
#include<stdio.h>int main()
{long long n = 0;long long m = 0;long long tmp = 0;scanf("%lld %lld", &n, &m);int a = n;int b = m;while(tmp=a%b){a = b;b = tmp;}printf("%lld\n", b + m * n / b);return 0;
}

 

六、小乐乐改数字

BC116 小乐乐改数字

#define  _CRT_SECURE_NO_WARNINGS  1#include <stdio.h>
#include <math.h>
int main()
{int n = 0;int ret = 0;scanf("%d", &n);int i = 0;while (n){//计算每一位int w = n % 10;//判断奇偶数if (w % 2 == 1)w = 1;elsew = 0;ret += w * pow(10, i);n /= 10;i++;}printf("%d", ret);return 0;
}

 

七、小乐乐走台阶

BC117 小乐乐走台阶

#define  _CRT_SECURE_NO_WARNINGS  1#include <stdio.h>
int fib(int n)
{if (n <= 2)return n;elsereturn fib(n - 1) + fib(n - 2);
}
int main()
{int n = 0;scanf("%d", &n);printf("%d\n", fib(n));return 0;
}

扩展学习: 剑指Offer算法题-青蛙跳台阶的问题

给大家拓展一个在《剑指offer》里面的题目,我们在介绍递归函数时提过两个问题:青蛙跳台阶汉诺塔问题,这里我们就拓展一下这个青蛙跳台阶问题。

八、小乐乐与序列

BC118 小乐乐与序列

#define  _CRT_SECURE_NO_WARNINGS  1#include <stdio.h>
int main()
{int n = 0;int arr[100000] = { 0 };int i = 0;int tmp = 0;scanf("%d", &n);for (i = 0; i < n; i++){scanf("%d", &tmp);arr[tmp] = tmp;}for (i = 0; i < 100000; i++){if (arr[i] != 0)printf("%d ", arr[i]);}return 0;
}

 

九、小乐乐与字符串

BC119 小乐乐与字符串

1、这个题的难度在于理解题目的意思;

2、不是连续的子串;
3、只要在字符串中找到几个字符能组合成子串就算是“子串”。

#define  _CRT_SECURE_NO_WARNINGS  1#include <stdio.h>
//
//这个题的难度在于理解题目的意思
//不是连续的子串
//只要在字符串中找到几个字符能组合成子串就算是“子串”
//
int main()
{char str[8000] = { 0 };int count = 0;scanf("%s", str);char* p = str;long long c = 0;long long ch = 0;long long chn = 0;while (*p){if (*p == 'C')c++;else if (*p == 'H')ch += c;else if (*p == 'N')chn += ch;p++;}printf("%lld\n", chn);return 0;
}

1、这个题中的子串可以是不连续的;

2、ch的个数其实和前面出现的c的个数有关,chn的个数和n之前ch的个数有关。

 

十、小乐乐找最大数

BC123 小乐乐找最大数

#define  _CRT_SECURE_NO_WARNINGS  1#include <stdio.h>
int main()
{int arr[4] = { 0 };int i = 0;for (i = 0; i < 4; i++){scanf("%d", &arr[i]);}//假设int max = arr[0];for (i = 1; i < 4; i++){if (arr[i] > max){max = arr[i];}}printf("%d\n", max);return 0;
}

 

十一、小乐乐转换成绩

BC125 小乐乐转换成绩

#define  _CRT_SECURE_NO_WARNINGS  1#include <stdio.h>
int main()
{int score = 0;scanf("%d", &score);if (score < 0 || score>100)printf("F\n");else if (score >= 90 && score <= 100)printf("A\n");else if (score >= 80 && score <= 89)printf("B\n");else if (score >= 70 && score <= 79)printf("C\n");else if (score >= 60 && score <= 69)printf("D\n");elseprintf("E\n");return 0;
}

 

十二、小乐乐计算函数

BC129 小乐乐计算函数

#define  _CRT_SECURE_NO_WARNINGS  1#include <stdio.h>
int max3(int a, int b, int c)
{int max = a;if (b > max)max = b;if (c > max)max = c;return max;
}
int main()
{int a = 0;int b = 0;int c = 0;scanf("%d %d %d", &a, &b, &c);float m = ((float)max3(a + b, b, c) / (max3(a, b + c, c) + max3(a, b, b + c)));printf("%.2f\n", m);return 0;
}

结尾

往期回顾:

【C语言刷题12天IO强训】到这里博主已经写了十一篇了,列出来有水字数嫌疑,就只放第十篇的网址,博主把专栏的前九篇的网址都放在C语言刷题(十)的【往期回顾】了,点击文章下面的【传送门】就可以看了,本文就只放第十篇,专栏链接挂在文章开头。

【C语言刷题】第十天:加量加餐继续,代码题训练,融会贯通IO模式

结语:本篇文章带大家刷了十二道题目,大家认真思考一下,结合知识点就能想出来,大家一定要及时回顾前面刷过的题目。本文到这里就结束了,希望对友友们有所帮助。本文的代码相比起之前的题目,难度上已经加深了很多,大家要上手操作,后面的代码题难度上整体是逐渐递增的,博主控制了难度,这样友友们能比较丝滑地上手敲下去。

http://www.lryc.cn/news/581401.html

相关文章:

  • 双倍硬件=双倍性能?TDengine线性扩展能力深度实测验证!
  • 类(JavaBean类)和对象
  • BM6 判断链表中是否有环(牛客)
  • Linux安装java后没法运行
  • 西门子PLC博图软件学习(一)
  • 手写 Vue 中虚拟 DOM 到真实 DOM 的完整过程
  • .NET9 实现排序算法(MergeSortTest 和 QuickSortTest)性能测试
  • LinkedList 链表数据结构实现 (OPENPPP2)
  • 前端面试专栏-算法篇:18. 查找算法(二分查找、哈希查找)
  • AI智能体革命:从对话机器到自主决策的进化之路 **——当AI长出“手和脑”,一场人机协作范式转移正在发生
  • AI小智项目全解析:软硬件架构与开发环境配置
  • 图灵完备之路(数电学习三分钟)----解码器
  • Pytest 测试发现机制详解:自动识别测试函数与模块
  • 理想汽车6月交付36279辆 第二季度共交付111074辆
  • 比较两个csv文件的内容是否一致
  • Python 机器学习核心入门与实战进阶 Day 3 - 决策树 随机森林模型实战
  • HTML初学者第三天
  • centos 7.6安装mysql8
  • 基于大模型的肾积水全周期预测与诊疗方案研究报告
  • 03每日简报20250705
  • Qt开发:QListWidget的介绍和使用
  • java整合itext pdf实现自定义PDF文件格式导出
  • 画笔的进化:生成式AI与艺术创造力的范式革命
  • 完成ssl不安全警告
  • 数据结构:数组:二分查找(Binary Search)
  • 用 Turbo Vision 2 为 Qt 6 控制台应用创建 TUI 字符 MainFrame
  • Java-继承
  • 隐马尔可夫模型:语音识别系统的时序解码引擎
  • nginx部署发布Vite项目
  • 苹果系统查看已连接Wi-Fi密码的实用指南