牛客网刷题记录|牛客网刷题记录 || 第一番

本文收录于专栏:【牛客网刷题记录】
专栏目的是对于刷题过程的记录,题型的列举和讲解,会持续输出,欢迎免费订阅!!

这是牛客网刷题记录专栏第一篇博文,先给大家简单介绍一下牛客网,牛客网是一个集笔面试系统、题库、课程教育、社群交流、招聘内推于一体的优质网站,牛客网题库中包含几万道题目,注重通过边学边练的模式揽获编程人员的喜爱
牛客网刷题记录|牛客网刷题记录 || 第一番
文章图片

牛客网干净整洁的界面,人性化的布局,高质量的题库题解,丰富的大厂面试题,让我想把它分享给大家,推荐大家来牛客网刷题,链接我就放在这了有需要自取点击开始刷题
小Tips:注册完之后,不用填信息直接点X,开启刷题之旅~

目录
  • C语言入门
    • 1.复制部分字符串
      • 描述
      • 代码
      • 题解
    • 2.牛牛的排序
      • 描述
      • 代码
      • 题解
  • C++入门
    • 3.输出水仙花数
      • 描述
      • 代码
      • 题解
    • 4.计算小球走过的路程和反弹高度
      • 描述
      • 代码
      • 题解

C语言入门 1.复制部分字符串 牛客网刷题记录|牛客网刷题记录 || 第一番
文章图片

描述
键盘输入一个长度为len(1 <= len < 30)的字符串,再输入一个正整数 m(1 <= m <= len),将此字符串中从第 m 个字符开始的剩余全部字符复制成为另一个字符串,并将这个新字符串输出。要求用指针处理字符串
输入描述:
键盘输入一个长度为len(1 <= len < 30)的字符串,再输入一个正整数 m(1 <= m <= len)
输出描述:
输出复制的新字符串
示例1:
输入:helloworld 6 输出:world

代码
#include using namespace std; int main() {char str[30] = { 0 }; cin.getline(str, sizeof(str)); int m; cin >> m; // write your code here...... char *p = NULL; p = &str[m-1]; cout << p; return 0; }

牛客网刷题记录|牛客网刷题记录 || 第一番
文章图片

题解
*p 和p[]一个意思,p是一个char数组的首地址,然后把str[m-1]的地址取出来赋值给p,就可以打印出来m-1后的字符串,很nice
牛客网刷题记录|牛客网刷题记录 || 第一番
文章图片

2.牛牛的排序 牛客网刷题记录|牛客网刷题记录 || 第一番
文章图片

描述
牛牛试图给一个长度为 n 整数数组排序,即实现一个 void sort(int *array,int n)
输入描述:
第一行输入一个正整数 n ,表示数组长度。
第二行输入 n 个正整数,表示数组中每个元素的值
【牛客网刷题记录|牛客网刷题记录 || 第一番】输出描述:
输出排序后的数组
示例1:
输入: 5 2 9 8 1 3 输出: 1 2 3 8 9

代码
#include using namespace std; int main() { int n=0,v=0; cin>>n; int arr[n]; for(int i=0; i>v; arr[i]=v; } sort(arr,n); }void sort(int *array,int n) { for(int i=0; iarray[j+1]){ int t=array[j]; array[j]=array[j+1]; array[j+1]=t; } } } for(int i=0; i

题解
这个牛牛排序,就是一个数组排序问题,用到了冒泡排序一个很关键和实用的排序方法,for循环控制一下输入输出就ok了,相信大家都能看懂的
C++入门 3.输出水仙花数 牛客网刷题记录|牛客网刷题记录 || 第一番
文章图片

描述
在控制台输出所有的“水仙花数”
水仙花数是指一个三位数,其各位数字的立方和等于该数本身
举例:
153就是一个水仙花数
153 = 111 + 555 + 333 = 1 + 125 + 27 = 153
输入描述:

输出描述:
输出所有的“水仙花数”,每个“水仙花数”占一行,格式如下:
xxx
yyy
zzz
代码
#include using namespace std; bool Nacissistic(int num){ int t = num; int a = num % 10; num /= 10; int b = num % 10; num /= 10; int c = num % 10; if (t == a*a*a + b*b*b + c*c*c) return true; else return false; } int main() { int num; for (num = 100; num <= 999; num++){ if (Nacissistic(num)){ cout << num << endl; } } return 0; }

题解
要知道水仙花数只会是三位数,要把所有的三位数,对每一个三位数检查是否是水仙花数,用对10取余求得个位数字,让其除以10以后再对10取余求得10位数字,最后再除以10以后对10取余求得百位数字。三个数字各自的三次方求和与原数比较,如果相等则是水仙花数,输出该数
牛客网刷题记录|牛客网刷题记录 || 第一番
文章图片

4.计算小球走过的路程和反弹高度 牛客网刷题记录|牛客网刷题记录 || 第一番
文章图片

描述
一球从 h 米高度自由落下,每次落地后反跳回原高度的一半再落下,求它在第 n 次落地时共经过了多少米?第 n 次返弹多高?
输入描述:
输入小球下落的高度和落地的次数(先输入小球初始高度再输入反弹次数)
输出描述:
输出小球第 n 次 落地时经过的距离和第 n 次反弹的高度(保留小数点后1位)
示例1:
输入:
100 1
输出:
100.0 50.0
示例2:
输入:
100 3
输出:
250.0 12.5
代码
#include #include using namespace std; int main() {// 下落的高度和落地的次数 double h; int n; cin >> h; cin >> n; // write your code here...... //记录第n次反弹时总共走过的记录 double temp=0; for(int i=1; i<=n; i++){ h/=2; temp+=h*3; } //减去最后反弹的高度h cout<
题解
利用循环计算每次反弹时的高度(记为h),以及经过了多少米(记为temp),由于要输出的是第n次落地时走了多少米,所以temp要减去最后反弹的高度h
还是推荐大家来牛客网一起刷题哦~点击开始刷题

    推荐阅读