信奥赛一本通——顺序结构程序设计之顺序结构实例


2070:【例2.13】数字对调


时间限制: 1000 ms         内存限制: 65536 KB
提交数: 17271     通过数: 7530 

【题目描述】

输入一个三位数,要求把这个数的百位数与个位数对调,输出对调后的数。

【输入】

三位数。

【输出】

如题述结果。

【输入样例】

123

【输出样例】

321
#include <iostream>
using namespace std;

int main()
{
	int a,b,c,d,n;
	cin >> a;
	b = a/100;
	c = (a-b*100)/10;
	d = a%10;
	n = b+c*10+d*100;
	cout << n << endl;
	return 0;
}

2071:【例2.14】平均分


时间限制: 1000 ms         内存限制: 65536 KB
提交数: 11782     通过数: 7313 

【题目描述】

已知某班有男同学x位,女同学y位,x位男生平均分是87分,y位女生的平均分是85,问全体同学平均分是多少分?

【输入】

男女同学人数。

【输出】

平均分(保留4位小数)。

【输入样例】

2 3

【输出样例】

85.8
#include <iostream>
#include <cstdio>
using namespace std;

int main()
{
	int x,y;
	cin >> x >> y;
	float score;
	score = (float)(x*87+y*85)/(x+y);
	printf("%.4f",score);
	return 0;
}

2072:【例2.15】歌手大奖赛


时间限制: 1000 ms         内存限制: 65536 KB
提交数: 10221     通过数: 5627 

【题目描述】

歌手大奖赛上6名评委给一位参赛者打分,6个人打分的平均分为9.6分;如果去掉一个最高分,这名参赛者的平均分为9.4分;如果去掉一个最低分,这名参赛者的平均分为9.8分;如果去掉一个最高分和一个最低分,这名参赛者的平均是多少?

【输入】

(无)

【输出】

使用%5.2f按实数格式输出,保留2位小数。

【输入样例】

(无)

【输出样例】

(无)
#include <iostream>
#include <cstdio>
using namespace std;

int main()
{
	float s_all,s_high,s_low,high,low,s_avg;
	s_all = 6*9.6;
	s_high = 5*9.4;
	s_low = 5*9.8;
	high = s_all-s_high;
	low = s_all - s_low;
	s_avg = (s_all-high-low)/4;
	printf("%5.2f",s_avg);
	return 0;
}

2073:【例2.16 】三角形面积


时间限制: 1000 ms         内存限制: 65536 KB
提交数: 8353     通过数: 5842 

【题目描述】

传说古代的叙拉古国王海伦二世发现的公式,利用三角形的三条边长来求取三角形面积。已知△ABC中的三边长分别为a,b,c,求△ABC的面积。

提示:海伦公式

s=p(p−a)(p−b)(p−c)−−−−−−−−−−−−−−−−−√s=p(p−a)(p−b)(p−c),其中p=a+b+c2p=a+b+c2。

【输入】

三角形的三条边长。

【输出】

面积。(保留3位小数)

【输入样例】

2.1 3.1 4.1

【输出样例】

3.179
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;

int main()
{
	float a,b,c,p,s;
	cin >> a >> b >> c;
	p = (a+b+c)/2;
	s = sqrt(p*(p-a)*(p-b)*(p-c));
	printf("%.3f",s);
	return 0;
}

1029:计算浮点数相除的余


时间限制: 1000 ms         内存限制: 65536 KB
提交数: 72361     通过数: 34124 

【题目描述】

计算两个双精度浮点数aa和bb的相除的余数,aa和bb都是双精度浮点数。这里余数(r)(r)的定义是:a=k×b+ra=k×b+r,其中kk是整数,0≤r<b0≤r<b。

【输入】

输入仅一行,包括两个双精度浮点数aa和bb。

【输出】

输出也仅一行,a÷ba÷b的余数。

【输入样例】

73.263 0.9973

【输出样例】

0.4601
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;

int main()
{
	double a,b,r;
	int k;
	cin >> a >> b;
	k = (int)a/b;
	r = a-k*b;
	cout << r << endl;
	return 0;
}

1030:计算球的体积


时间限制: 1000 ms         内存限制: 65536 KB
提交数: 57831     通过数: 37487 

【题目描述】

对于半径为 rr 的球,其体积的计算公式为V=43πr3V=43πr3,这里取 π=3.14π=3.14。现给定 rr,即球半径,类型为double,求球的体积VV,保留到小数点后22位。

【输入】

输入为一个不超过 100100 的非负实数,即球半径,类型为double。

【输出】

输出一个实数,即球的体积,保留到小数点后 22 位。

【输入样例】

4

【输出样例】

267.95
#include <iostream>
#include <cstdio>
using namespace std;

int main()
{
	double r,v,pi = 3.14;
	cin >> r;
	v = 4/3.0*pi*r*r*r;
	printf("%.2lf",v);
	return 0;
}

1031:反向输出一个三位数


时间限制: 1000 ms         内存限制: 65536 KB
提交数: 79013     通过数: 47795 

【题目描述】

将一个三位数反向输出,例如输入358,反向输出853。

【输入】

一个三位数n。

【输出】

反向输出n。

【输入样例】

100

【输出样例】

001
#include <iostream>
#include <cstdio>
using namespace std;

int main()
{
	int a,b,c,d;
	cin >> a;
	b = a/100;
	c = (a-b*100)/10;
	d = a%10;
	cout << d << c << b << endl;
	return 0;
}

1032:大象喝水查


时间限制: 1000 ms         内存限制: 65536 KB
提交数: 60308     通过数: 36684 

【题目描述】

一只大象口渴了,要喝20升水才能解渴,但现在只有一个深h厘米,底面半径为r厘米的小圆桶(h和r都是整数)。问大象至少要喝多少桶水才会解渴。

【输入】

输入有一行:包行两个整数,以一个空格分开,分别表示小圆桶的深h和底面半径r,单位都是厘米。

【输出】

输出一行,包含一个整数,表示大象至少要喝水的桶数。

【输入样例】

23 11

【输出样例】

3
#include <iostream>
using namespace std;

int main()
{
	int h,r,num;
	cin >> h >> r;
	float v,pi = 3.14f;
	v = pi*r*r*h;
	num = 20000/v+1;
	cout << num << endl;
	return 0;
}

1033:计算线段长度


时间限制: 1000 ms         内存限制: 32768 KB
提交数: 54636     通过数: 30505 

【题目描述】

已知线段的两个端点的坐标A(Xa,Ya)A(Xa,Ya),B(Xb,Yb)B(Xb,Yb),求线段ABAB的长度,保留到小数点后33位。

【输入】

第一行是两个实数Xa,YaXa,Ya,即AA的坐标。

第二行是两个实数Xb,YbXb,Yb,即BB的坐标。

输入中所有实数的绝对值均不超过1000010000。

【输出】

一个实数,即线段ABAB的长度,保留到小数点后33位。

【输入样例】

1 1
2 2

【输出样例】

1.414
#include <iostream>
#include <cmath>
#include <cstdio>
using namespace std;

int main()
{
	double x1,y1,x2,y2,L;
	cin >> x1 >> y1;
	cin >> x2 >> y2;
	L = sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
	printf("%.3f",L);
	return 0;
}

1034:计算三角形面积


时间限制: 1000 ms         内存限制: 65536 KB
提交数: 77234     通过数: 25788 

【题目描述】

平面上有一个三角形,它的三个顶点坐标分别为(x1,y1),(x2,y2),(x3,y3)(x1,y1),(x2,y2),(x3,y3),那么请问这个三角形的面积是多少,精确到小数点后两位。

【输入】

输入仅一行,包括66个单精度浮点数,分别对应x1,y1,x2,y2,x3,y3x1,y1,x2,y2,x3,y3。

【输出】

输出也是一行,输出三角形的面积,精确到小数点后两位。

【输入样例】

0 0 4 0 0 3

【输出样例】

6.00
#include <iostream>
#include <cmath>
#include <cstdio>
using namespace std;

int main()
{
	float x1,y1,x2,y2,x3,y3,s;
	cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3;
	s = abs((x2-x1)*(y3-y1)-(x3-x1)*(y2-y1))/2;
	printf("%.2f",s);
	return 0;
}

1035:等差数列末项计算


时间限制: 1000 ms         内存限制: 65536 KB
提交数: 41722     通过数: 31563 

【题目描述】

给出一个等差数列的前两项a1,a2a1,a2,求第nn项是多少。

【输入】

一行,包含三个整数a1,a2,na1,a2,n。−100≤a1,a2≤100,0<n≤1000−100≤a1,a2≤100,0<n≤1000。

【输出】

一个整数,即第nn项的值。

【输入样例】

1 4 100

【输出样例】

298
#include <iostream>
using namespace std;

int main()
{
	int a1,a2,n,sum;
	cin >> a1 >> a2 >> n;
	sum = a1 + (a2-a1)*(n-1);
	cout << sum << endl;
	return 0;
}

1036:A×B问题


时间限制: 1000 ms         内存限制: 65536 KB
提交数: 133663     通过数: 41663 

【题目描述】

输入两个正整数AA和BB,求A×BA×B的值。注意乘积的范围和数据类型的选择。

【输入】

一行,包含两个正整数AA和BB,中间用单个空格隔开。1≤A,B≤500001≤A,B≤50000。

【输出】

一个整数,即 A×BA×B 的值。

【输入样例】

3 4

【输出样例】

12
#include <iostream>
using namespace std;

int main()
{
	long long a,b;
	cin >> a >> b;
	cout << a*b << endl;
	return 0;
}

1037:计算2的幂


时间限制: 1000 ms         内存限制: 65536 KB
提交数: 60832     通过数: 35254 

【题目描述】

给定非负整数nn,求2n2n的值,即22的nn次方。

【输入】

一个整数nn。0≤n<310≤n<31。

【输出】

一个整数,即22的nn次方。

【输入样例】

3

【输出样例】

8
#include <iostream>
#include <cmath>
using namespace std;

int main()
{
	int n;
	cin >> n;
	long long sum;
	sum = pow(2,n);
	cout << sum << endl;
	return 0;
}

1038:苹果和虫子


时间限制: 1000 ms         内存限制: 65536 KB
提交数: 122605     通过数: 35039 

【题目描述】

你买了一箱n个苹果,很不幸的是买完时箱子里混进了一条虫子。虫子每x小时能吃掉一个苹果,假设虫子在吃完一个苹果之前不会吃另一个,那么经过y小时你还有多少个完整的苹果?

【输入】

输入仅一行,包括n,x和y(均为整数)。

【输出】

输出也仅一行,剩下的苹果个数。

【输入样例】

10 4 9

【输出样例】

7
#include <iostream>
#include <cmath>
using namespace std;

int main()
{
	int n,x,y,num;
	cin >> n >> x >> y;
	num = n-ceil(y/(float)x);
	cout << (num<0?0:num) << endl;
	return 0;
}

编写完毕!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiaoxiaoqin@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值