洛谷刷题C语言:数字反转、再分肥皂水、三角形面积、Apples Prologue/苹果和虫子、数的性质
记录洛谷刷题QAQ,一些不大优雅的代码。
记录洛谷刷题QAQ,一些不大优雅的代码
一、【深基2.例7】数字反转
题目描述
输入一个不小于 100 100 100 且小于 1000 1000 1000,同时包括小数点后一位的一个浮点数,例如 123.4 123.4 123.4 ,要求把这个数字翻转过来,变成 4.321 4.321 4.321 并输出。
输入格式
一行一个浮点数
输出格式
一行一个浮点数
样例 #1
样例输入 #1
123.4
样例输出 #1
4.321
代码如下:
#include<string.h>
#include<stdio.h>
#include<math.h>
#include <stdlib.h>
int main()
{
char num[100000];
scanf("%s",&num);
int len = strlen(num);
for(int i = len-1;i >= 0;i--)
{
printf("%c",num[i]);
}
return 0;
}
二、【深基2.例8】再分肥宅水
题目描述
现在有 t t t 毫升肥宅快乐水,要均分给 n n n 名同学。每名同学需要 2 2 2 个杯子。现在想知道每名同学可以获得多少毫升饮料(严格精确到小数点后 3 3 3 位),以及一共需要多少个杯子。
输入格式
输入一个实数 t t t 和一个正整数 n n n,使用空格隔开。
输出格式
输出两行。
第一行输出一个三位小数,表示可以获得多少毫升饮料。第二行输出一个正整数,表示一共需要多少个杯子。
样例 #1
样例输入 #1
500.0 3
样例输出 #1
166.667
6
提示
对于所有数据, 0 ≤ t ≤ 10000 0\leq t\leq 10000 0≤t≤10000 且小数点后不超过 3 3 3 位, 1 ≤ n ≤ 1000 1\leq n\leq 1000 1≤n≤1000。
代码如下:
#include<string.h>
#include<stdio.h>
#include<math.h>
#include <stdlib.h>
int main()
{
double t;
int n;
scanf("%lf%d",&t,&n);
double num = t/n;
printf("%.3lf\n%d",num,n*2);
return 0;
}
三、【深基2.习2】三角形面积
题目描述
一个三角形的三边长分别是 a a a、 b b b、 c c c,那么它的面积为 p ( p − a ) ( p − b ) ( p − c ) \sqrt{p(p-a)(p-b)(p-c)} p(p−a)(p−b)(p−c),其中 p = 1 2 ( a + b + c ) p=\frac{1}{2}(a+b+c) p=21(a+b+c)。输入这三个数字,计算三角形的面积,四舍五入精确到 1 1 1 位小数。
输入格式
第一行输入三个实数 a , b , c a,b,c a,b,c,以空格隔开。
输出格式
输出一个实数,表示三角形面积。精确到小数点后 1 1 1 位。
样例 #1
样例输入 #1
3 4 5
样例输出 #1
6.0
提示
数据保证保证能构成三角形, 0 ≤ a , b , c ≤ 1000 0\leq a,b,c\leq 1000 0≤a,b,c≤1000,每个边长输入时不超过 2 2 2 位小数。
代码如下:
#include<string.h>
#include<stdio.h>
#include<math.h>
#include <stdlib.h>
int main()
{
double a, b, c;
scanf("%lf%lf%lf",&a,&b,&c);
double p = 0.5*(a+b+c);
double sum = sqrt(p*(p - a)*(p - b)*(p - c));
printf("%.1lf",sum);
return 0;
}
四、【深基2.习6】Apples Prologue / 苹果和虫子
题目描述
八尾勇喜欢吃苹果。她现在有 m m m( 1 ≤ m ≤ 100 1 \le m \le 100 1≤m≤100)个苹果,吃完一个苹果需要花费 t t t( 0 ≤ t ≤ 100 0 \le t \le 100 0≤t≤100)分钟,吃完一个后立刻开始吃下一个。现在时间过去了 s s s( 1 ≤ s ≤ 10000 1 \le s \le 10000 1≤s≤10000)分钟,请问她还有几个完整的苹果?
输入格式
输入三个非负整数表示 m , t , s m, t, s m,t,s。
输出格式
输出一个整数表示答案。
样例 #1
样例输入 #1
50 10 200
样例输出 #1
30
提示
如果你出现了 RE,不如检查一下被零除?
代码如下:
#include<string.h>
#include<stdio.h>
#include<math.h>
#include <stdlib.h>
int main()
{
int m;
int t, s;
scanf("%d%d%d",&m,&t,&s);
if(t == 0)
{
printf("0\n");
}
else if(t != 0)
{
int num = s / t;
int sum = 0;
if(s % t != 0)
{
num++;
}
if(num >= m)
{
printf("0\n");
}
else {
printf("%d",m - num);
}
}
return 0;
}
五、【深基3.例2】数的性质
题目描述
一些整数可能拥有以下的性质:
- 性质 1:是偶数;
- 性质 2:大于 4 4 4 且不大于 12 12 12。
小 A 喜欢这两个性质同时成立的整数;Uim 喜欢这至少符合其中一种性质的整数;八尾勇喜欢刚好有符合其中一个性质的整数;正妹喜欢不符合这两个性质的整数。现在给出一个整数 x x x,请问他们是否喜欢这个整数?
输入格式
输入一个整数 x ( 0 ≤ x ≤ 1000 ) x(0\le x \le 1000) x(0≤x≤1000)
输出格式
输出这
4
4
4 个人是否喜欢这个数字,如果喜欢则输出 1
,否则输出 0
,用空格分隔。输出顺序为:小 A、Uim、八尾勇、正妹。
样例 #1
样例输入 #1
12
样例输出 #1
1 1 0 0
代码如下:
#include<string.h>
#include<stdio.h>
#include<math.h>
#include <stdlib.h>
int main()
{
int n;
scanf("%d",&n);
int a = 0, b = 0;
if(n % 2 == 0)
{
a = 1;
}
if(n > 4&& n <= 12)
{
b = 1;
}
if(a == 1&&b == 1)
{
printf("1 1 0 0");
}
if(a == 1&&b == 0)
{
printf("0 1 1 0");
}
if(a == 0&& b== 1)
{
printf("0 1 1 0");
}
if(a == 0 && b == 0)
{
printf("0 0 0 1");
}
return 0;
}
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)