🛒本文收录于专栏:【牛客网刷题记录】
📢专栏目的是对于刷题过程的记录,题型的列举和讲解,会持续输出,欢迎免费订阅!!
牛客网干净整洁的界面,人性化的布局,高质量的题库题解,丰富的大厂面试题,让我想把它分享给大家,推荐大家来牛客网刷题,链接我就放在这了有需要自取👉点击开始刷题
小Tips:注册完之后,不用填信息直接点X,开启刷题之旅~
C语言入门
🔥1.复制部分字符串
👌描述
键盘输入一个长度为len(1 <= len < 30)的字符串,再输入一个正整数 m(1 <= m <= len),将此字符串中从第 m 个字符开始的剩余全部字符复制成为另一个字符串,并将这个新字符串输出。要求用指针处理字符串
输入描述:
键盘输入一个长度为len(1 <= len < 30)的字符串,再输入一个正整数 m(1 <= m <= len)
输出描述:
输出复制的新字符串
示例1:
输入:helloworld
6
输出:world
👌代码
#include <iostream>
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;
}
👌题解
🔥2.牛牛的排序
👌描述
牛牛试图给一个长度为 n 整数数组排序,即实现一个 void sort(int *array,int n)
输入描述:
第一行输入一个正整数 n ,表示数组长度。
第二行输入 n 个正整数,表示数组中每个元素的值
输出描述:
输出排序后的数组
示例1:
输入:
5
2 9 8 1 3
输出:
1 2 3 8 9
👌代码
#include <iostream>
using namespace std;
int main() {
int n=0,v=0;
cin>>n;
int arr[n];
for(int i=0;i<n;i++){
cin>>v;
arr[i]=v;
}
sort(arr, n);
}
void sort(int *array,int n)
{
for(int i=0;i<n;i++){
for(int j=0;j<n-i-1;j++){
if(array[j]>array[j+1]){
int t=array[j];
array[j]=array[j+1];
array[j+1]=t;
}
}
}
for(int i=0;i<n;i++){
cout<<array[i]<<" ";
}
}
👌题解
C++入门
🔥3.输出水仙花数
👌描述
在控制台输出所有的“水仙花数”
水仙花数是指一个三位数,其各位数字的立方和等于该数本身
举例:
153就是一个水仙花数
153 = 111 + 555 + 333 = 1 + 125 + 27 = 153
输入描述:
无
输出描述:
输出所有的“水仙花数”,每个“水仙花数”占一行,格式如下:
xxx
yyy
zzz
👌代码
#include <iostream>
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;
}
👌题解
🔥4.计算小球走过的路程和反弹高度
👌描述
一球从 h 米高度自由落下,每次落地后反跳回原高度的一半再落下,求它在第 n 次落地时共经过了多少米?第 n 次返弹多高?
输入描述:
输入小球下落的高度和落地的次数(先输入小球初始高度再输入反弹次数)
输出描述:
输出小球第 n 次 落地时经过的距离和第 n 次反弹的高度(保留小数点后1位)
示例1:
输入:
100 1
输出:
100.0 50.0
示例2:
输入:
100 3
输出:
250.0 12.5
👌代码
#include <iostream>
#include <iomanip>
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<<fixed<<setprecision(1)<<temp-h<<" "<<h<<endl;
return 0;
}