博客昵称:博客小梦
最喜欢的座右铭:全神贯注的上吧!!!
作者简介:一名热爱C/C++,算法等技术、喜爱运动、热爱K歌、敢于追梦的小博主!
博主小留言:哈喽!各位CSDN的uu们,我是你的博客好友小梦,希望我的文章可以给您带来一定的帮助,话不多说,文章推上!欢迎大家在评论区唠嗑指正,觉得好的话别忘了一键三连哦!
哈喽各位友友们,我今天又学到了很多有趣的知识,现在迫不及待的想和大家分享一下!我仅已此文,给大家分享除夕夜的牛客网刷题分享~都是精华内容,可不要错过哟!!!
题目简述:
今年是2019年,KiKi想知道1~2019中有多少个包含数字9的数。包含数字的数是指有某一位是“9”的数,例如“2019”、“199”等。
输入描述:
无
输出描述:
一行,一个整数,表示1~2019中共有多少个数包含数字9。
代码思路详解~
- 首先利用for循环生成1~2019个数字;
- 创建变量 m,代替i执行下面的步骤,这样就能够保留下i
- 9可能出现再个位、十位,百位,千位上,这些都是要被统计的,这里利用取模运算。而当某一位没有9,就除10去掉这一位,进行下一位的比较,当m < 0时,while循环结束
题目源代码~:
#include
int main()
{
int count = 0;
for (int i = 9; i <= 2019; i++)
{
int m = i;
while(m>0)
{
if (m % 10 == 9)
{
count++;
break;
}
else
{
m /= 10;
}
}
}
printf("%d",count);
return 0;
}
题目简述:
描述
小乐乐的班主任想统计一下班级里一共有多少人需要被请家长,三个成绩(语文,数学,外语)平均分低于60的将被请家长,小乐乐想编程帮助班主任算一下有多少同学被叫家长。
输入描述:
共n+1行
第一行,输入一个数n,代表小乐乐的班级中有n个同学。
在接下来的n行中每行输入三个整数代表班级中一个同学的三科成绩(语文,数学,外语),用空格分隔。
输出描述:
一行,一个整数,代表班级中需要被请家长的人数。
示例1
输入:
3
80 100 90
40 70 65
20 84 93
输出:
1
题目源代码~:
#include
int main()
{
int n = 0;
scanf("%d",&n);
int count = 0;
int ma = 0;
int Ch = 0;
int En = 0;
while (scanf("%d %d %d", &Ch, &ma, &En) == 3)
{
int ave = (Ch + ma + En) / 3;
if (ave < 60)
{
count++;
}
}
printf("%d", count);
return 0;
}
描述
春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的: “水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:153=13+53+3^3。 现在要求输出所有在m和n范围内的水仙花数。
输入描述:
输入数据有多组,每组占一行,包括两个整数m和n(100 ≤ m ≤ n ≤ 999)。
输出描述:
对于每个测试实例,要求输出所有在给定范围内的水仙花数,就是说,输出的水仙花数必须大于等于m,并且小于等于n,如果有多个,则要求从小到大排列在一行内输出,之间用一个空格隔开; 如果给定的范围内不存在水仙花数,则输出no; 每个测试实例的输出占一行。
示例1
输入:
100 120
300 380
输出:
no
370 371
题目源代码~:
#include
#include
int main()
{
int m = 0;
int n = 0;
while (scanf("%d %d", &m, &n) == 2)
{
int flag = 0;
for (int i = m; i <= n; i++)
{
int sum = 0;//一定要将sum定义在里面,消除上一次sum记录的数值
int a = i;//这里定义a是因为要确保不用动i,让a代替i做下面的步骤,再把符合条件的i输出来就行
while (a > 9)//这里解决的是个位和十位的立方相加步骤
{
sum += pow(a % 10, 3);
a /= 10;
}
sum += pow(a,3);//这里是加上百位上数字的立方
if (sum == i)
{
printf("%d ", i);
flag = 1;
}
}
if (flag == 0)
printf("no\n");
}
return 0;
}
描述
变种水仙花数 - Lily Number:把任意的数字,从中间拆分成两个数字,比如1461 可以拆分成(1和461),(14和61),(146和1),如果所有拆分后的乘积之和等于自身,则是一个Lily Number。
例如:
655 = 6 * 55 + 65 * 5
1461 = 1461 + 1461 + 146*1
求出 5位数中的所有 Lily Number。
输入描述:
无
输出描述:
一行,5位数中的所有 Lily Number,每两个数之间间隔一个空格。
画图分析~:
题目源代码~:
#include
int main()
{
int i = 0;
int j = 0;
for (i = 10000; i < 100000; i++)
{
int sum = 0;
for(j = 10; j <100000; j*=10)
{
sum += (i % j)*(i / j);
}
if(sum == i)
printf("%d ",i);
}
return 0;
}
描述
公务员面试现场打分。有7位考官,从键盘输入若干组成绩,每组7个分数(百分制),去掉一个最高分和一个最低分,输出每组的平均成绩。
(注:本题有多组输入)
输入描述:
每一行,输入7个整数(0~100),代表7个成绩,用空格分隔。
输出描述:
每一行,输出去掉最高分和最低分的平均成绩,小数点后保留2位,每行输出后换行。
示例1
输入:
99 45 78 67 72 88 60
输出:
73.00
题目源代码~:
#include
int main()
{
int arr[7] = { 0 };
while (scanf("%d %d %d %d %d %d %d", arr, arr + 1, arr + 2, arr + 3,
arr + 4, arr + 5, arr + 6) == 7)
{
int max = 0;//放在循环里面,每次循环都要将max初始化为0;
int min = 100;//放在循环里面,每次循环都要将min初始化为0;
int sum = 0;//放在循环里面,每次循环都要将sum初始化为0;
for (int i = 0; i < 7; i++)
{
if (arr[i] > max)
{
max = arr[i];
}
if (arr[i] < min)
{
min = arr[i];
}
sum += arr[i];
}
double avg = (sum - min - max) / 5.0;
printf("%.2f\n", avg);
}
return 0;
}
==本篇文章旨在分享今日刷题的经验。希望大家通过阅读此文有所收获!如果我写的有什么不好之处,请在文章下方给出你宝贵的意见。如果觉得我写的好的话请点个赞赞和关注哦~