前言:今天是咱们第五期刷牛客网上的题目。
目标:熟练用数学知识来解决编程问题,会利用每种循环。
鸡汤:压抑了,那就换个环境呼吸;困惑了,那就转个角度思考;没路了,不妨回头,路在脚下,哪个方向都可以走。先干为敬,大家随意。
🚩第一题
pow() 是求次方的,使用它需要引用头文件,#include<math.h>
#include <stdio.h> #include<math.h> int main() { //初始化 double pi = 3.14; double r = 0; //输入 scanf("%lf",&r); //输出 printf("%0.2lf\n",4.0 / 3.0 * pi *pow(r,3)); return 0; }
🚩第二题
这里的输出需要补零,所以采用这样的格式输出**%#02d:%#02d**
#include <stdio.h> int main() { //初始化 int hour = 0;//时 int min = 0;//分 int howmin = 0;//睡的时间 //输入 scanf("%d:%d %d", &hour, &min, &howmin); hour = (hour + (howmin + min) / 60) % 24; min = (howmin + min) % 60; //输出 printf("%#02d:%#02d", hour, min); return 0; }
🚩第三题
#include <stdio.h> int main() { //初始化 int n = 0; int time = 0; //输入 scanf("%d", &n); //当人数只有一个人时 if (n == 0) { time = 2; } //当人数大于 0 小于12时 else if (n > 0 && n < 12) { time = 2; } //当人数大于12时 else { time = 4 * (n / 12) + 2; } printf("%d", time); return 0; }
🚩第四题
这里我就不再讲解啦,有兴趣的小伙伴可以看看我在C语言刷题中讲解到了这道题,不会的小伙伴一定要去看看哟!!!
#include<stdio.h> int main() { //定义两个变量 long long x, y; //定义余数 long long r; //输入 scanf("%lld %lld", &x, &y); //算法之一的代码,目的输出最小公倍数 long long z = x * y; //判断两数的大小,实现最大的数放在前面 if (x < y) { int temp = x; x = y; y = temp; } //循环,当y==0时,结束循环 while (y != 0) { r = x % y; x = y; y = r; } //求和 long long sum = x + z / x; printf("%lld\n", sum); return 0; }
🚩第五题
这道题很需要思维能力
1.先使数字每个位数取出
2.判断位数的奇偶性
3.因为每个位数需要不断的乘10,所以有了 i 这个变量
#include<stdio.h> int main() { //初始化 int sum = 0; //求和 int num = 0; int i = 1; //输入 scanf("%d", &sum); //判断 sum 是否等于零 while (sum) { //当位数为偶数时的判断 if ((sum % 2) == 0) { //要使 i * 10 i = i * 10; } //当位数为奇数时的判断 else { //只有奇数要要加起来 num = i * 1 + num; i = i * 10; } //使 sum 除 10 sum = sum / 10; } //输出 printf("%d\n", num); return 0; }
🚩第六题
家人们,这道题有手就行,对不对
#include <stdio.h> int main() { //初始化数组 int score[5] = {0}; int i = 0;//定义变量 double sum = 0;//统计总分数 for(i = 0;i < 4;i++) { scanf("%ld",&score[i]); } sum = score[0] * 0.2 + sum; sum = score[1] * 0.1 + sum; sum = score[2] * 0.2 + sum; sum = score[3] * 0.5 + sum; //打印 printf("%0.1lf\n",sum); return 0; }
🚩第七题
大家可别看错题啦(别问,反正我开始看错题了)
#include <stdio.h> int main() { //定义数组 int arr[5] = {0}; int i = 0; for(i = 0; i < 4;i++) { scanf("%d",&arr[i]); } //求和 int sum = (arr[0] + arr[1] - arr[2]) * arr[3]; printf("%d\n",sum); return 0; }
🚩第八题
pow(x,y) 求x的y次方
abs(x) 求x的绝对值
#include<stdio.h> #include<math.h> int main() { //初始化 int x1,y1,x2,y2; int r1,r2,r3,r4; //输入 scanf("%d %d\n",&x1,&y1); scanf("%d %d\n",&x2,&y2); r1=abs(x1-x2); r2=abs(y1-y2); r3=pow(r1,2); r4=pow(r2,2); //输出 printf("%d",r3+r4); return 0; }
🚩第九题
#include<stdio.h> int main() { //初始化 int a = 0; int b = 0; //输入 scanf("%d %d", &a, &b); //求和 int sum = a + b; if (sum >= 100) { sum = sum % 100; } printf("%d\n", sum); return 0; }
🚩第十题
#include<stdio.h> int main() { //初始化 int a=0; while(scanf("%d",&a)!=EOF);//注意多行输入 if(a>=140) { printf("Genius\n"); } return 0; }
结束语
今天的刷题内容就到这里啦,如果上面的题目你有更优的解法,请打在下面的评论区中,独乐乐不如众乐乐。