乘风破浪会有时,直挂云帆济沧海。
文章目录
前言
forever 牛客C基础题型刷题复习训练营,从易到难,一遍一遍的刷题练习敲代码的习惯和思维,尽量使用熟悉的编程语言来敲。
正文
题目一:温度转换
描述
输入一个浮点数f, 表示华氏温度, 输出对应的摄氏温度c , c=5/9*(f-32)
输入描述:
输入一个浮点数f(1 <= f<= 100000)
输出描述:
输出浮点数,保留3位小数
代码如下:
#include <stdio.h>
int main(void)
{
double f = 0;
double c = 0;
scanf("%lf",&f);
c = 5.0/9*(f-32);//华氏温度转化为摄氏温度公式
printf("%.3lf
",c);
}
题目二:牛牛的圆
描述
牛牛有一个半径为 r 的圆,请你计算这个圆的面积。
输入描述:
输入一个半径 r
输出描述:
输出圆的面积
代码如下:
#include <stdio.h>
#define N 3.14//宏定义
int main(void)
{
int r = 0;
scanf("%d",&r);
printf("%.2lf
",N*r*r);
}
题目三:牛牛的并联电路
描述
牛牛有一个阻值是 r1 和一个阻值 r2 的电阻,牛牛想知道这两个电阻并联后等效电阻是多少
输入描述:
输入 r1 和 r2 两个电阻的阻值
输出描述:
输出两个电阻并联后的等效电阻zhi
代码如下:
#include <stdio.h>
int main(void)
{
int r1 = 0, r2 = 0;
scanf("%d %d",&r1,&r2);
float a = 1.0/r1;
float b = 1.0/r2;
printf("%.1f
",1/(a+b));
}
题目四:牛牛的水杯
描述
牛牛口渴了,要喝10升水才能解渴,但现在只有一个深 h 厘米,底面半径是 r 厘米的水杯,牛牛最少要喝多少杯水才能解渴。
输入描述:
输入杯子的高度 h ,底面半径 r 。
输出描述:
输出牛牛最少要喝多少杯水
代码如下:
#include <stdio.h>
#define N 3.14
int main(void)
{
int h = 0, r = 0;
scanf("%d %d",&h,&r);
float n = 0;
n = 10000/(N*h*r*r);
if(n>(int)n)//这里存在强制转换
{
printf("%d
",(int)n+1);
}
}
题目五:牛牛的等差数列
描述
牛牛刚接触等差数列, 他知道等差数列是每项与前一项的差值都相等的数列,已知第一项 a 和第二项 b 的值,他想知道第三项是多少。
输入描述:
输入等差数列的第一、二项 a , b
输出描述:
输出等差数列第三项的值
代码如下:
#include <stdio.h>
int main(void)
{
int a = 0, b = 0;
int d = 0;
scanf("%d %d",&a,&b);
d = b - a;
printf("%d
",b+d);
}
题目六:小乐乐定闹钟
描述
小乐乐比较懒惰,他现在想睡觉,然后再去学习。他知道现在的时刻,以及自己要睡的时长,想设定一个闹钟叫他起床学习,但是他太笨了,不知道应该把闹钟设定在哪个时刻,请你帮助他。(只考虑时和分,不考虑日期)
输入描述:
输入现在的时刻以及要睡的时长k(单位:minute),中间用空格分开。
输入格式:hour:minute k(如hour或minute的值为1,输入为1,而不是01)
(0 ≤ hour ≤ 23,0 ≤ minute ≤ 59,1 ≤ k ≤ 109)
输出描述:
对于每组输入,输出闹钟应该设定的时刻,输出格式为标准时刻表示法(即时和分都是由两位表示,位数不够用前导0补齐)。
代码如下:
#include<stdio.h>
int main()
{
long hour=0,minute=0,k=0;
long a=0,b=0,c=0,d=0;
scanf("%ld:%ld %ld",&hour,&minute,&k);
a=(k+minute)/60;
b=k%60;
c=(hour+a)%24;
d=(minute+b)%60;
printf("%02ld:%02ld
",c,d);
return 0;
}
题目七:肖小乐乐排电梯
描述
小乐乐学校教学楼的电梯前排了很多人,他的前面有n个人在等电梯。电梯每次可以乘坐12人,每次上下需要的时间为4分钟(上需要2分钟,下需要2分钟)。请帮助小乐乐计算还需要多少分钟才能乘电梯到达楼上。(假设最初电梯在1层)
输入描述:
输入包含一个整数n (0 ≤ n ≤ 109)
输出描述:
输出一个整数,即小乐乐到达楼上需要的时间。
代码如下:
#include<stdio.h>
int main()
{
long n=0;
long a=0,time=0;
scanf("%ld",&n);
a=n/12;
time=4*a+2;
printf("%ld
",time);
return 0;
}
题目八: 小乐乐与欧几里得
描述
小乐乐最近在课上学习了如何求两个正整数的最大公约数与最小公倍数,但是他竟然不会求两个正整数的最大公约数与最小公倍数之和,请你帮助他解决这个问题。
输入描述:
每组输入包含两个正整数n和m。(1 ≤ n ≤ 109,1 ≤ m ≤ 109)
输出描述:
对于每组输入,输出一个正整数,为n和m的最大公约数与最小公倍数之和。
代码如下:
#include<stdio.h>//辗转相除法求最大公约数和最小公倍数
int main()
{
long m = 0, n = 0;
long x = 0, y = 0;
long z = 0;
scanf("%ld %ld", &m, &n);
x =(m>n?m:n), y = (m>n?n:m);
while (y!=0)
{
z = x % y;
x = y;
y = z;
}
printf("%ld
", x +(m * n / x));
return 0;
}
题目九:
描述
小乐乐喜欢数字,尤其喜欢0和1。他现在得到了一个数,想把每位的数变成0或1。如果某一位是奇数,就把它变成1,如果是偶数,那么就把它变成0。请你回答他最后得到的数是多少。
输入描述:
输入包含一个整数n (0 ≤ n ≤ 109)
输出描述:
输出一个整数,即小乐乐修改后得到的数字。
代码如下:
#include <stdio.h>
int main()
{
int n = 0;
int ret = 0;
int i = 1;
scanf("%d", &n);
while (n)
{
if ((n % 10) % 2)
{
ret += i;
}
i *= 10;
n /= 10;
}
printf("%d", ret);
}
题目十:kiki算数
描述
问题:KiKi今年5岁了,已经能够认识100以内的非负整数,并且并且能够进行 100 以内的非负整数的加法计算。不过,BoBo老师发现KiKi在进行大于等于100的正整数的计算时,规则如下:
输入描述:
一行,输入两个非负整数a和b,用一个空格分隔。(0 <= a,b<= 231-1)。
输出描述:
针对每组输入,输出按照KiKi的运算规则计算出 a+b 的值。
代码如下:
#include<stdio.h>
int main(void)
{
long long a=0,b=0;
scanf("%d %d",&a,&b);
long long sum=0;
sum=a+b;
sum%=100;
printf("%d
",sum);
}
结语
牛客复习题目打卡,代码人一定得多敲代码,从基础题型向后一步一步走,从质变到达量变,加油!
也希望大家能够从这些题目中寻找到一些灵感,如有不足之处或者有其他方法,请大家评论区打出来哈~ 互相学习,互相进步~
再见啦!
谢谢阅读!