NOI题库答案(1.3 编程基础之算术表达式与顺序执行)
NOI网址:http://noi.openjudge.cn/
目录
01:A+B问题
02:计算(a+b)*c的值
03:计算(a+b)*c的值
04:带余除法
05:计算分数的浮点数值
06:甲流疫情死亡率
07:计算多项式的值
08:温度表达转化
09:与圆相关的计算
10:计算并联电阻的阻值
11:计算浮点数相除的余数
12:计算球的体积
13:反向输出一个三位数
14:大象喝水
15:苹果和虫子
16:计算线段长度
17:计算三角形面积
18:等差数列末项计算
19:A*B问题
20:计算2的幂
01:A+B问题
总时间限制: 1000ms 内存限制: 65536kB
描述
在大部分的在线题库中,都会将A+B问题作为第一题,以帮助新手熟悉平台的使用方法。
A+B问题的题目描述如下:给定两个整数A和B,输出A+B的值。保证A、B及结果均在整型范围内。
现在请你解决这一问题。
输入
一行,包含两个整数A,B,中间用单个空格隔开。A和B均在整型范围内。
输出
一个整数,即A+B的值。保证结果在整型范围内。
样例输入
1 2
样例输出
3
#include <iostream>
using namespace std;
int main()
{int a,b;cin>>a>>b;cout<<a+b; return 0;
}
02:计算(a+b)*c的值
总时间限制: 1000ms 内存限制: 65536kB
描述
给定3个整数a、b、c,计算表达式(a+b)*c的值。
输入
输入仅一行,包括三个整数a、b、c, 数与数之间以一个空格分开。
(-10,000 < a,b,c < 10,000)
输出
输出一行,即表达式的值
样例输入
2 3 5
样例输出
25
#include<iostream>
using namespace std;
int main()
{int a,b,c;cin>>a>>b>>c;cout<<(a+b)*c; return 0;
}
03:计算(a+b)*c的值
总时间限制: 1000ms 内存限制: 65536kB
描述
给定3个整数a、b、c,计算表达式(a+b)/c的值,/是整除运算。
输入
输入仅一行,包括三个整数a、b、c, 数与数之间以一个空格分开。(-10,000 < a,b,c < 10,000, c不等于0)
输出
输出一行,即表达式的值。
样例输入
1 1 3
样例输出
0
#include <iostream>
using namespace std;
int main()
{int a,b,c;cin>>a>>b>>c;cout<<(a+b)/c; return 0;
}
04:带余除法
总时间限制: 1000ms 内存限制: 65536kB
描述
给定被除数和除数,求整数商及余数。
此题中请使用默认的整除和取余运算,无需对结果进行任何特殊处理。看看程序运行结果与数学上的定义有什么不同?
输入
一行,包含两个整数,依次为被除数和除数(除数非零),中间用一个空格隔开。
输出
一行,包含两个整数,依次为整数商和余数,中间用一个空格隔开。
样例输入
10 3
样例输出
3 1
#include <iostream>
using namespace std;
int main()
{int a,b;cin>>a>>b;cout<<a/b<<" "<<a%b; return 0;
}
05:计算分数的浮点数值
总时间限制: 1000ms 内存限制: 65536kB
描述
两个整数a和b分别作为分子和分母,既分数 a/b ,求它的浮点数值(双精度浮点数,保留小数点后9位)
输入
输入仅一行,包括两个整数a和b
输出
输出也仅一行,分数 a/b 的浮点数值(双精度浮点数,保留小数点后9位)
样例输入
5 7
样例输出
0.714285714
提示
使用printf("%.9lf", ...)实现保留小数点后9位
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{double a,b;double c;cin>>a>>b;c=a/b;printf("%.9lf",c);return 0;
}
06:甲流疫情死亡率
总时间限制: 1000ms 内存限制: 65536kB
描述
甲流并不可怕,在中国,它的死亡率并不是很高。请根据截止2009年12月22日各省报告的甲流确诊数和死亡数,计算甲流在各省的死亡率。
输入
输入仅一行,有两个整数,第一个为确诊数,第二个为死亡数。
输出
输出仅一行,甲流死亡率,以百分数形式输出,精确到小数点后3位。
样例输入
10433 60
样例输出
0.575%
提示
输出%可以使用printf(“%%”);
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{double a,b;double c;cin>>a>>b;c=100*b/a;printf("%.3lf%%",c);return 0;
}
07:计算多项式的值
总时间限制: 1000ms 内存限制: 65536kB
描述
对于多项式f(x) = ax3 + bx2 + cx + d 和给定的a, b, c, d, x,计算f(x)的值。
输入
输入仅一行,包含5个实数,分别是x,及参数a、b、c、d的值,每个数都是绝对值不超过100的双精度浮点数。数与数之间以一个空格分开。
输出
输出一个实数,即f(x)的值,保留到小数点后7位。
样例输入
2.31 1.2 2 2 3
样例输出
33.0838692
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{double a,b,c,d,x,p;cin>>x>>a>>b>>c>>d;p=x*x*x*a+x*x*b+x*c+d;printf("%.7lf",p);return 0;
}
08:温度表达转化
总时间限制: 1000ms 内存限制: 65536kB
描述
利用公式 C = 5 * (F-32) / 9 (其中C表示摄氏温度,F表示华氏温度) 进行计算转化。
输入
输入一行,包含一个实数f,表示华氏温度。(f >= -459.67)
输出
输出一行,包含一个实数,表示对应的摄氏温度,要求精确到小数点后5位。
样例输入
41
样例输出
5.00000
提示
C/C++,使用double
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{double f,c;cin>>f;c=5*(f-32)/9;printf("%.5lf",c);return 0;
}
09:与圆相关的计算
总时间限制: 1000ms 内存限制: 65536kB
描述
给出圆的半径,求圆的直径、周长和面积。
输入
输入包含一个实数r(0 < r <= 10,000),表示圆的半径。
输出
输出一行,包含三个数,分别表示圆的直径、周长、面积,数与数之间以一个空格分开,每个数保留小数点后4位。
样例输入
3.0
样例输出
6.0000 18.8495 28.2743
提示
如果圆的半径是r,那么圆的直径、周长、面积分别是2*r、2 * pi * r、pi * r * r,其中约定pi=3.14159。
可以使用printf("%.4lf", ...)实现保留小数点后4位。
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{double r,d,s,c,PI=3.14159;cin>>r;d=2*r;s=PI*r*r;c=2*PI*r;printf("%.4lf ",d);printf("%.4lf ",c);printf("%.4lf",s);return 0;
}
10:计算并联电阻的阻值
总时间限制: 1000ms 内存限制: 65536kB
描述
对于阻值为r1和r2的电阻,其并联电阻阻值公式计算如下:
R = 1/(1/r1 + 1/r2)
输入
两个电阻阻抗大小,浮点型,以一个空格分开。
输出
并联之后的阻抗大小,结果保留小数点后2位
样例输入
1 2
样例输出
0.67
提示
计算过程使用float类型
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{float a,b,r;cin>>a>>b;r=1/(1/a+1/b);printf("%.2lf",r);return 0;
}
11:计算浮点数相除的余数
总时间限制: 1000ms 内存限制: 65536kB
描述
计算两个双精度浮点数a和b的相除的余数,a和b都是正数的。这里余数(r)的定义是:a = k * b + r,其中 k是整数, 0 <= r < b。
输入
输入仅一行,包括两个双精度浮点数a和b。
输出
输出也仅一行,a÷b的余数
样例输入
73.263 0.9973
样例输出
0.4601
提示
注意:输出时小数尾部没有多余的0,可以用下面这种格式:
double x;
x = 1.33;
printf("%g", x);
#include <iostream>
using namespace std;
int main()
{double a,b,r;int k;cin>>a>>b;k=a/b;r=a-k*b;cout<<r;return 0;
}
12:计算球的体积
总时间限制: 1000ms 内存限制: 65536kB
描述
对于半径为r的球,其体积的计算公式为V=4/3*πr3,这里取π= 3.14。
现给定r,求V。
输入
输入为一个不超过100的非负实数,即球半径,类型为double。
输出
输出一个实数,即球的体积,保留到小数点后2位。
样例输入
4
样例输出
267.95
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{double r,v,PI=3.14,a;cin>>r;a=4.0/3;v=a*PI*r*r*r;printf("%.2lf",v);return 0;
}
13:反向输出一个三位数
总时间限制: 1000ms 内存限制: 65536kB
描述
将一个三位数反向输出。
输入
一个三位数n。
输出
反向输出n。
样例输入
100
样例输出
001
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{int x,a,b,c;cin>>x;a=x/100;b=(x-a*100)/10;c=x-a*100-b*10;cout<<c<<b<<a;return 0;
}
14:大象喝水
总时间限制: 1000ms 内存限制: 65536kB
描述
一只大象口渴了,要喝20升水才能解渴,但现在只有一个深h厘米,底面半径为r厘米的小圆桶(h和r都是整数)。问大象至少要喝多少桶水才会解渴。
输入
输入有一行:包行两个整数,以一个空格分开,分别表示小圆桶的深h和底面半径r,单位都是厘米。
输出
输出一行,包含一个整数,表示大象至少要喝水的桶数。
样例输入
23 11
样例输出
3
提示
如果一个圆桶的深为h厘米,底面半径为r厘米,那么它最多能装Pi * r * r * h立方厘米的水。(设Pi=3.14159)
1升 = 1000毫升
1毫升 = 1 立方厘米
#include <iostream>
using namespace std;
int main()
{int h,r,a,b,v=20000;double pi=3.14159;cin>>h>>r;a=v/(pi*r*r*h);b=(int)a+1;cout<<b<<endl;return 0;
}
15:苹果和虫子
总时间限制: 1000ms 内存限制: 65536kB
描述
你买了一箱n个苹果,很不幸的是买完时箱子里混进了一条虫子。虫子每x小时能吃掉一个苹果,假设虫子在吃完一个苹果之前不会吃另一个,那么经过y小时你还有多少个完整的苹果?
输入
输入仅一行,包括n,x和y(均为整数)。输入数据保证y <= n * x。
输出
输出也仅一行,剩下的苹果个数
样例输入
10 4 9
样例输出
7
提示
注意:是要求完整的苹果数。
#include <iostream>
using namespace std;
int main()
{int n,x,y,p;cin>>n>>x>>y;if(y%x==0)p=n-y/x;elsep=n-y/x-1;cout<<p;return 0;
}
16:计算线段长度
总时间限制: 1000ms 内存限制: 65536kB
描述
已知线段的两个端点的坐标A(Xa,Ya),B(Xb,Yb),求线段AB的长度。
输入
共两行。
第一行是两个实数Xa,Ya,即A的坐标。
第二行是两个实数Xb,Yb,即B的坐标。
输入中所有实数的绝对值均不超过10000。
输出
一个实数,即线段AB的长度,保留到小数点后3位。
样例输入
1 1
2 2
样例输出
1.414
#include <iostream>
#include <stdio.h>
#include <math.h>
using namespace std;
int main()
{double x1,y1,x2,y2,p;cin>>x1>>y1>>x2>>y2;p=sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));printf("%.3lf",p);return 0;
}
17:计算三角形面积
总时间限制: 1000ms 内存限制: 65536kB
描述
平面上有一个三角形,它的三个顶点坐标分别为(x1, y1), (x2, y2), (x3, y3),那么请问这个三角形的面积是多少。
输入
输入仅一行,包括6个单精度浮点数,分别对应x1, y1, x2, y2, x3, y3。
输出
输出也是一行,输出三角形的面积,精确到小数点后两位。
样例输入
0 0 4 0 0 3
样例输出
6.00
提示
海伦公式
#include <iostream>
#include <cstdio>
#include <math.h>
using namespace std;
int main()
{float x1,y1,x2,y2,x3,y3;float s,p,a,b,c,x,y,z;cin>>x1>>y1>>x2>>y2>>x3>>y3;x=(x2-x1)*(x2-x1)+(y2-y1)*(y2-y1);y=(x3-x1)*(x3-x1)+(y3-y1)*(y3-y1);z=(x3-x2)*(x3-x2)+(y3-y2)*(y3-y2);a=sqrt(x);b=sqrt(y);c=sqrt(z);p=(a+b+c)/2; s=sqrt(p*(p-a)*(p-b)*(p-c));printf("%.2lf",s);return 0;
}//sqrt()函数需要用到<math.h>头文件
18:等差数列末项计算
总时间限制: 1000ms 内存限制: 65536kB
描述
给出一个等差数列的前两项a1,a2,求第n项是多少。
输入
一行,包含三个整数a1,a2,n。-100 <= a1,a2 <= 100,0 < n <= 1000。
输出
一个整数,即第n项的值。
样例输入
1 4 100
样例输出
298
#include <iostream>
using namespace std;
int main()
{int n,a1,a2,an,d;cin>>a1>>a2>>n;d=a2-a1;an=a1+(n-1)*d;cout<<an;return 0;
}
19:A*B问题
总时间限制: 1000ms 内存限制: 65536kB
描述
输入两个正整数A和B,求A*B。
输入
一行,包含两个正整数A和B,中间用单个空格隔开。1 <= A,B <= 50000。
输出
一个整数,即A*B的值。
样例输入
3 4
样例输出
12
提示
注意乘积的范围和数据类型的选择
#include <cstdio>
#include <cstring>
using namespace std;
int main()
{long long a,b,c;scanf("%lld%lld",&a,&b);c=a*b;printf("%lld",c);return 0;
}
20:计算2的幂
总时间限制: 1000ms 内存限制: 65536kB
描述
给定非负整数n,求2n。
输入
一个整数n。0 <= n < 31。
输出
一个整数,即2的n次方。
样例输入
3
样例输出
8
#include <iostream>
using namespace std;
int main()
{int n,i,j=1;cin>>n;for(i=1;i<=n;i++)j=j*2;cout<<j;return 0;
}
以上即为NOI 1.3部分的所有题目,欢迎指正!
NOI题库答案(1.3 编程基础之算术表达式与顺序执行)相关推荐
- 1.3编程基础之算术表达式与顺序执行(20题)-2022.02.26
1.3编程基础之算术表达式与顺序执行 01 A+B问题 (Python3实现) 1.3编程基础之算术表达式与顺序执行 01 A+B问题 (Python3实现)_青少年趣味编程-CSDN博客 P1001 ...
- 1.3 编程基础之算术表达式与顺序执行(20题)
1.3编程基础之算术表达式与顺序执行 01 A+B问题 (Python3实现) https://blog.csdn.net/dllglvzhenfeng/article/details/1226799 ...
- 1.3编程基础之算术表达式与顺序执行 03 计算(a+b) c的值
http://noi.openjudge.cn/ch0103/01/ #include <bits/stdc++.h> using namespace std; int main() {i ...
- 1.3编程基础之算术表达式与顺序执行 01 A+B问题 (Python3实现)
http://noi.openjudge.cn/ch0103/01/ https://www.luogu.com.cn/problem/P1001 """ P1001 A ...
- 1.3编程基础之算术表达式与顺序执行 01 A+B问题
http://noi.openjudge.cn/ch0103/01/ #include <bits/stdc++.h> using namespace std; int main() {i ...
- 1.3编程基础之算术表达式与顺序执行 02 计算(a+b)*c的值
http://noi.openjudge.cn/ch0103/02/ #include <iostream> #include <bits/stdc++.h> using na ...
- 1.3 编程基础之算术表达式与顺序执行 04 带余除法
#include <bits/stdc++.h>using namespace std; int main( void ) {//内存变量 int a,b;int ans;//1.输入 c ...
- 1.3编程基础之算术表达式与顺序执行 05 计算分数的浮点数值
#include <iostream> using namespace std; int main() {int a,b;cin>>a>>b;printf(&quo ...
- 1.3编程基础之算术表达式与顺序执行 06 甲流疫情死亡率
/* 1.3编程基础之算术表达式与顺序执行 06 甲流疫情死亡率 http://noi.openjudge.cn/ch0103/06/ */ #include<iostream> usin ...
- 1.3 编程基础之算术表达式与顺序执行 08 温度表达转化
/* 08:温度表达转化总时间限制: 1000ms 内存限制: 65536kB描述 利用公式 C = 5 * (F-32) / 9 (其中C表示摄氏温度,F表示华氏温度) 进行计算转化.输入 输入一行 ...
最新文章
- 通过反射执行get、set方法
- 《金色梦乡》金句摘抄(六)
- Rust 入坑指南 | CSDN 博文精选
- javascript 不让成为nan_JavaScript高级,第一集
- 为什么要网页模块化?
- 推荐使用maven生成mybatis代码
- 在python中print表示的数据类型是_在python中自己写的数据类型使用print无法输出每个元素...
- SQLServer------基本操作
- 乐优商城(02)--商品分类
- keras-yolo3遇到的一些注意点与解决思路
- 高中计算机技术教材,广西科学技术出版高中信息技术教材第一册《计算机硬件组成》...
- 怎么进入本地组策略编辑器
- wpa_supplicant详解
- java excel 冻结_Java 冻结、解除冻结 Excel 的行和列
- 一份新的lilypond谱子,能设置页边距和设置换页符了
- 【kong系列九】之限流rate-limiting插件
- 2021年编程课程网盘资料大汇总,限时领取!
- CSDN换头像的方法
- Apache2.4 HTTP服务器配置反向代理和负载均衡
- 玩玩python之两个猥琐的爬虫