链接:登录—专业IT笔试面试备考平台_牛客网
题目来源:牛客网
1021 整数的个位
输入一个整数a, 求个位数
#include <iostream>
#include <stdlib.h>
#include <cstring>
#include <math.h>
#include <iomanip>
#include <fstream>
#include <algorithm>
using namespace std;
int main(){
int n;//求整数n的个位数
cin >> n;
if(n>=0&&n<10){
cout << n;
}else if(n>0){
cout << n%10 << endl;
}else{//n<0
cout << (n%10)*(-1) << endl;
}
return 0;
}
1022 整数的十位
输入一个整数,求其十位数
#include <iostream>
#include <stdlib.h>
#include <cstring>
#include <math.h>
#include <iomanip>
#include <fstream>
#include <algorithm>
using namespace std;
int main(){
int n;//求整数n的十位数
cin >> n;
if(n>=0&&n<10){
cout << 0;
}else{
n=n/10;
cout << n%10 << endl;
}
return 0;
}
1023 反向输出一个四位数
将一个四位数,反向输出。
#include <iostream>
#include <stdlib.h>
#include <cstring>
#include <math.h>
#include <iomanip>
#include <fstream>
#include <algorithm>
using namespace std;
int main(){
int n;
cin >> n;
//反向输出四位数n
int arr[4];//存储四位数的每一个数字
int k=0;
while(n){
arr[k++] = n%10;
n=n/10;
}
for(int i=0;i<4;i++)
cout << arr[i];
return 0;
}
1024 总成绩和平均分计算
依次输入一个学生的3科成绩,在屏幕上输出该学生的总成绩以及平均成绩。
#include <iostream>
#include <stdlib.h>
#include <cstring>
#include <math.h>
#include <iomanip>
#include <fstream>
#include <algorithm>
using namespace std;
int main(){
//依次输入一个学生的3科成绩,
//在屏幕上输出该学生的总成绩以及平均成绩。
float a,b,c;
cin >> a >> b >> c;//读取三科成绩
float sum,aver;
sum=a+b+c;
aver=sum/3;
printf("%.2f %.2f",sum,aver);
return 0;
}
1025 计算平均成绩
从键盘输入5个学生的成绩(整数),求他们的平均成绩(浮点数,保留一位小数)。
#include <iostream>
#include <stdlib.h>
#include <cstring>
#include <math.h>
#include <iomanip>
#include <fstream>
#include <algorithm>
using namespace std;
int main(){
int a,b,c,d,e;
cin >> a >> b >> c >> d>>e;
float aver;
int sum;
sum = a+b+c+d+e;
aver=sum/(5*1.0);
printf("%.1f",aver);
return 0;
}
1026 牛牛学梯形
输入梯形的上边和下边边长,以及梯形的高度,求梯形的面积
#include <iostream>
#include <stdlib.h>
#include <cstring>
#include <math.h>
#include <iomanip>
#include <fstream>
#include <algorithm>
using namespace std;
int main(){
int a,b,c;
cin >> a >> b >> c ;
float area;
area=(a+b)*c*0.5;
printf("%.3f",area);
return 0;
}
1027 牛牛学矩形
已知长方形的长和宽,求它的周长和面积
#include <iostream>
#include <stdlib.h>
#include <cstring>
#include <math.h>
#include <iomanip>
#include <fstream>
#include <algorithm>
using namespace std;
int main(){
int a,b;
cin >> a >> b ;
printf("%d\n",2*(a+b));
printf("%d\n",a*b);
return 0;
}
1028 牛牛学立体
输入长方体的长、宽、高,计算它的表面积和体积
#include <iostream>
#include <stdlib.h>
#include <cstring>
#include <math.h>
#include <iomanip>
#include <fstream>
#include <algorithm>
using namespace std;
int main(){
int a,b,c;
cin >> a >> b >> c;
int area;
area=2*(a*b+b*c+a*c);
printf("%d\n",area);
printf("%d\n",a*b*c);
return 0;
}
1029 计算三角形的周长和面积
根据给出的三角形3条边a, b, c,计算三角形的周长和面积。
数据范围: 0<a,b,c≤100000 0 < a,b,c \le 100000 \ 0<a,b,c≤100000
#include <iostream>
#include <stdlib.h>
#include <cstring>
#include <math.h>
#include <iomanip>
#include <fstream>
#include <algorithm>
using namespace std;
int main(){
int a,b,c;
cin >> a >> b >> c;
float cir,p,area;
cir=a+b+c;
p=(a+b+c)*0.5;
area=sqrt(p*(p-a)*(p-b)*(p-c));
printf("circumference=%.2f area=%.2f\n",cir,area);
return 0;
}
1030 你能活多少秒
问题:一年约有 3.156×10^7 s,要求输入您的年龄,显示该年龄合多少秒。
数据范围: 0<age≤200 0 < age \le 200 \ 0<age≤200
#include <iostream>
#include <stdlib.h>
#include <cstring>
#include <math.h>
#include <iomanip>
#include <algorithm>
using namespace std;
int main(){
int age;
cin >> age;
long s;//秒数
s=age * 3.156e7;
cout << s << endl;
return 0;
}
1031 时间转换
给定秒数 seconds ,把秒转化成小时、分钟和秒。
数据范围: 0<seconds<100000000 0 < seconds < 100000000\ 0<seconds<100000000
#include <iostream>
#include <stdlib.h>
#include <cstring>
#include <math.h>
#include <iomanip>
#include <algorithm>
using namespace std;
int main(){
//给定秒数 seconds ,把秒转化成小时、分钟和秒。
int sec;
cin >> sec;
int h,m,s;//分别为小时数、分钟数和秒数
h=sec/3600;
sec=sec%3600;
m=sec/60;
s=sec%60;
cout << h << " " << m<< " "<<s << endl;
return 0;
}
1032 温度转换
输入一个浮点数f, 表示华氏温度, 输出对应的摄氏温度c , c=5/9*(f-32)
#include <iostream>
#include <stdlib.h>
#include <cstring>
#include <math.h>
#include <iomanip>
#include <algorithm>
using namespace std;
int main(){
//温度转换
float f;//表示华氏温度
float c;//表示对应的摄氏温度
cin >> f;
c=(5*1.0)/9*(f-32);
printf("%.3f",c);
return 0;
}
1033 计算机内存
我们可以看到题目描述的上方有一个空间限制32M, 在计算机中一个整数占据4个字节的内存, 1MB等于1024KB, 1KB等于1024B, 1B就代表1字节, 那么请问n MB的内存可以使用多少个整数呢?
#include <iostream>
#include <stdlib.h>
#include <cstring>
#include <math.h>
#include <iomanip>
#include <algorithm>
using namespace std;
int main(){
int n;//表示内存大小(MB)
cin >> n;
int b;//表示有多少个字节
b=n*1024*1024/4;
cout << b << endl;
return 0;
}
1034 [NOIP2017]成绩
牛牛最近学习了 C++入门课程,这门课程的总成绩计算方法是:
总成绩=作业成绩×20%+小测成绩×30%+期末考试成绩×50%
牛牛想知道,这门课程自己最终能得到多少分。
#include <iostream>
#include <stdlib.h>
#include <cstring>
#include <math.h>
#include <iomanip>
#include <algorithm>
using namespace std;
int main(){
int a,b,c;
cin >> a >> b >> c;//三个成绩
int score;
score=a*0.2+b*0.3+c*0.5;
cout << score << endl;
return 0;
}
1035 KiKi的最高分
KiKi知道了大一三科比较重要课程的分数,包括:程序设计基础,高数,英语,请编程帮他找到三科中的最高分。
#include <iostream>
#include <stdlib.h>
#include <cstring>
#include <math.h>
#include <iomanip>
#include <algorithm>
using namespace std;
int main(){
//编程找到三科中的最高分
int a,b,c;
cin >> a >> b >> c;
int max1,max2,max;
max1=a>b?a:b;
max2=b>c?b:c;
max=max1>max2?max1:max2;
cout << max << endl;
return 0;
}
1036 组队比赛
Compute, Cubercsl, SuperSodaSea, Ybmj 准备组队参加 "科大讯飞" 赞助的 CrossFire 比赛。
科大讯飞股份有限公司成立于1999年,是亚太地区知名的智能语音和人工智能上市企业。自成立以来,长期从事语音及语言、自然语言理解、机器学习推理及自主学习等核心技术研究并保持了国际前沿技术水平;积极推动人工智能产品研发和行业应用落地,致力让机器"能听会说,能理解会思考",用人工智能建设美好世界。
这场比赛需要两人一队组队参加,他们不知道怎么分组。已知他们的 CrossFire 分数分别为 a, b, c, d,现在想要把他们两两分为一队,使得他们的实力比较平均,也就是两队的实力差尽量小。
这里定义两队的实力差为每队的 CrossFire 分数之和的差值,现在他们想要知道这个实力差最小是多少。
#include <iostream>
#include <stdlib.h>
#include <cstring>
#include <math.h>
#include <iomanip>
#include <algorithm>
using namespace std;
int main(){
int a,b,c,d;
cin >> a >> b >> c >>d;
int sum=a+b+c+d;//四个人的成绩之和
int max1,max2,max3,max;
max1=a>b?a:b;
max2=b>c?b:c;
max3=c>d?c:d;
max=max1>max2?max1:max2;
if(max<max3)
max=max3;
int min1,min2,min3,min;
min1=a<b?a:b;
min2=b<c?b:c;
min3=c<d?c:d;
min=min1<min2?min1:min2;
if(min>min3)
min=min3;
sum = sum - max -min;
int res;
res=abs((max+min)-sum);
cout << res << endl;
return 0;
}
1037 平方根
输入一个整数, 求它的平方根,输出答案往下取整.
比如5=2\sqrt{5} = 25=2, 16=4\sqrt{16}=416=4
#include <iostream>
#include <stdlib.h>
#include <cstring>
#include <math.h>
#include <iomanip>
#include <algorithm>
using namespace std;
int main(){
int n;//平方根,往下取整
cin >> n;
int res;
res=sqrt(n);
cout << res << endl;
return 0;
}
1038 长方体
给出共享长方体一个顶点的三个面的面积,求它十二条边的边长和。
#include <iostream>
#include <stdlib.h>
#include <cstring>
#include <math.h>
#include <iomanip>
#include <algorithm>
using namespace std;
int main(){
//给出共享长方体一个顶点的三个面的面积,
//求它十二条边的边长和。
int a,b,c;//表示面积
//长乘宽 长乘高 宽乘高
//求 (长+宽+高)*4
cin >> a >> b >> c;
int x,y,z;
x=sqrt(a*b/c);
y=sqrt(a*c/b);
z=sqrt(b*c/a);
int res;
res=(x+y+z)*4;
cout << res << endl;
return 0;
}
1039 使徒袭来
神秘的使徒袭击了第三新东京市,少男少女们驾驶着决战兵器EVA守护着人类的和平。
牛可乐是NERV特务机关的指挥官,他必须时刻了解牛牛/牛妹/牛能三人的战斗状态。现在牛可乐获得了这三位EVA驾驶员的战斗力之积,在保证三位驾驶员战斗力均为正实数的情况下,请你帮助牛可乐计算这三位驾驶员的战斗力之和最低是多少?
#include <iostream>
#include <stdlib.h>
#include <cstring>
#include <math.h>
#include <iomanip>
#include <algorithm>
using namespace std;
int main(){
//已知三个数乘积,求三个数的和最小是多少
int n;
cin >> n;
//设三个数分别为x,y,z
//(x+y+z)>=3(xyz)^(1/3)=3a^(1/3)
double res;//存储最终的结果
double m=1/(3*1.0);
res=3*pow(n,m);
printf("%.3lf",res);
return 0;
}
1040 白兔的分身术
白兔学会了分身术。
一开始有一只白兔,接下来会进行k轮操作,每一轮中每一只白兔都会变成p只白兔。
要求k轮后白兔的总数恰好为n。
要求找到两个正整数p,k,最大化p+k
#include <iostream>
#include <stdlib.h>
#include <cstring>
#include <math.h>
#include <iomanip>
#include <algorithm>
using namespace std;
int main(){
//白兔分身术
//p^k=n,n已知,令p+k最大,即k=1
long long n;
cin >> n;
cout << n+1 << endl;
return 0;
}
1041 纸牌
小w想和你van纸牌
小w有两张纸牌,两张纸牌上都有相同的正整数n
每一轮一张纸牌上的数都可以减去小于等于另外一张纸牌上的数的数
每一轮只能操作和上轮不同的纸牌
小w想知道三轮之后两纸牌上数字之和的最小值。注意,不能减为负数
#include <iostream>
#include <stdlib.h>
#include <cstring>
#include <math.h>
#include <iomanip>
#include <algorithm>
using namespace std;
int main(){
int n;
cin >> n;
int a=n,b=n;
//2-1=1 2-1=1 1-1=0 res=1+0=1
//5-3=2 5-2=3 2-2=0 res=3+0=3
//6-3=3 6-3=3 3-3=0 res=3+0=3
//7-4=3 7-3=4 3-3=0 res=4+0=4
//只要将n/2向上取整即可
cout << (n+1)/2 << endl;
return 0;
}
1042 Tobaku Mokushiroku Kaiji
Kaiji正在与另外一人玩石头剪刀布。双方各有一些代表石头、剪刀、布的卡牌,每局两人各出一张卡牌,根据卡牌的内容决定这一局的胜负。胜负规则为:石头赢剪刀、剪刀赢布、布赢石头、相同为平局。每张卡牌至多被使用一次。
已知双方的卡牌数量,问Kaiji最多赢几局?
#include <iostream>
#include <stdlib.h>
#include <cstring>
#include <math.h>
#include <iomanip>
#include <algorithm>
using namespace std;
int main(){
int a,b,c,d,e,f;
cin >> a >> b >> c >> d >> e>>f;
//a,b,c分别表示Kaiji的石头、剪刀、布的牌的数量,
//d,e,f分别表示此时另一人的石头、剪刀、布的牌的数量。
//29 7 41 14 12 42
//出石头,对方出剪刀 29 12 赢12局
//出剪刀,对方出布 7 42 赢7局
//出布,对方出石头 41 14 赢14局
//一共赢12+7+14=33局
int x=0,y=0,z=0;
x=a>e?e:a;
y=b>f?f:b;
z=c>d?d:c;
int sum=x+y+z;//统计一共赢的局数
cout << sum << endl;
return 0;
}
1043 珂朵莉的假动态仙人掌
珂朵莉想每天都给威廉送礼物,于是她准备了n个自己的本子
她想送最多的天数,使得每天至少送一个本子,但是相邻两天送的本子个数不能相同
珂朵莉最多送几天礼物呢
#include <iostream>
#include <stdlib.h>
#include <cstring>
#include <math.h>
#include <iomanip>
#include <algorithm>
using namespace std;
int main(){
int n;
cin >> n;
int res;//存储最后的答案
if(n%3==0){
res=(n/3)*2;
}else{
res=(n/3)*2+1;
}
cout << res << endl;
return 0;
}
1044 旅游观光
有n个地方,编号为1->n,任意两个地方有公交车,从i到j的票价为(i+j)mod(n+1),而且这个票可以用无限次,你要把这些地方全部走一遍,问最小花费为多少。可以在任意地方开始和结束。
#include <iostream>
#include <stdlib.h>
#include <cstring>
#include <math.h>
#include <iomanip>
#include <algorithm>
using namespace std;
int main(){
int n;
cin >> n;//表示有n个地方
int res;//存储最后的输出结果
if(n%2==0){//n是偶数时
res=(n/2)-1;
}else{//n为奇数时
res=n-1-n/2;
}
cout << res << endl;
return 0;
}
1045 [NOIP2002]自由落体
在高为 H 的天花板上有 n 个小球,体积不计,位置分别为 0,1,2,….n-1。在地面上有一个小车(长为 L,高为 K,距原点距离为 S1)。已知小球下落距离计算公式为 d=1/2*g*(t^2),其中 g=10,t 为下落时间。地面上的小车以速度 V 前进。如下图:
小车与所有小球同时开始运动,当小球距小车的距离 <= 0.00001 时,即认为小球被小车接受(小球落到地面后不能被接受)。
请你计算出小车能接受到多少个小球。
#include <iostream>
#include <stdlib.h>
#include <cstring>
#include <math.h>
#include <iomanip>
#include <algorithm>
using namespace std;
int main(){
double h,s1,v,l,k,n;
cin>>h>>s1>>v>>l>>k>>n;
double t_max=sqrt(h/5); //球落地前的最大时间
double t_min=sqrt((h-k)/5);//最短时间
double k1,k2;
int ans=0;
//小球最高时,(且球能落在车上)车尾能到的距离
k1=s1+l-t_min*v;
//小球最低时,(且球能落在车上)车头能到的距离
k2=s1-t_max*v;
for(int i=0;i<=n-1;i++){
if((k1-i)>=0.0001&&(k2-i)<=0.0001)
ans++;
}
cout << ans << endl;
return 0;
}
1046 挂科
曾经有课树叫高树,树上挂了很多人.ljs对班级里面的挂科情况做了调查.班里有n个同学.ljs问了每个同学两个问题
1.你挂高树了吗.
2.你挂大雾了吗.
同学可能会回答yes,也可能回答no.根据调查ljs知道了班里面有x个同学挂了高树,y个同学挂了大雾(ljs记性差只记得这些)
ljs想知道同时挂高树和大雾的最大可能人数max和最小可能人数min
#include <iostream>
#include <stdlib.h>
#include <cstring>
#include <math.h>
#include <iomanip>
#include <algorithm>
using namespace std;
int main(){
int n,x,y;//表示n个同学,x个人挂了高树,y个人挂了大雾
cin >> n >> x >> y;
//同时挂高树和大雾的最大可能人数max和最小可能人数min
int max=0,min=0;
max=x>y?y:x;//最大可能人数取x和y的最小值
if(x+y<=n){
min=0;
}else if(x+y>n&&x+y<=2*n){
min=x+y-n;
}
cout << max << " " << min << endl;
return 0;
}
1047 得不到的爱情
Chranos是个数学天才。
一天,有一个可爱的小女孩追求Chranos,他知道Chranos最喜欢当且仅当总质量为K克的时候的番茄炒蛋了。她希望通过美食俘获Chranos的胃,这样就一定可以和他在一起了吧!虽然小女孩有无限数量的食材,但是数学王国的番茄和蛋非常特殊,他们的质量分别为N克和M克。为了表现一颗完整的心、表达充足的爱意,所有的食材必须被用完。N和M都是正整数且互素,制作过程中既不会凭空增加质量,也不会凭空消失质量。
Chranos不希望小女孩打扰他学数学。他发现,并不是所有番茄炒蛋都是可以被制作出来的。他想找出最大的不可以被制作出的总质量K来拒绝小女孩,这样Chranos就可以永远和数学在一起了!
#include <iostream>
#include <stdlib.h>
#include <cstring>
#include <math.h>
#include <iomanip>
#include <algorithm>
using namespace std;
int main(){
//塞瓦维斯特定理:对于ax+by=c式子,
//当a,b均大于1且a,b互为素数(最大公约数==1),
//满足方程无整数解的c的最大值为a*b-a-b。
//用int不行
long n,m;
cin >> n >> m;
long k=n*m-n-m;
cout << k << endl;
return 0;
}