您的位置:首页 > 编程语言

1.3编程基础之算术表达式与顺序执行

2015-11-23 20:01 459 查看
01:A+B问题

总时间限制: 1000ms 内存限制: 65536kB

描述

在大部分的在线题库中,都会将A+B问题作为第一题,以帮助新手熟悉平台的使用方法。

A+B问题的题目描述如下:给定两个整数A和B,输出A+B的值。保证A、B及结果均在整型范围内。

现在请你解决这一问题。

输入

一行,包含两个整数A,B,中间用单个空格隔开。A和B均在整型范围内。

输出

一个整数,即A+B的值。保证结果在整型范围内。

#include <iostream>
using namespace std;
int main()
{
int a,b;
cin>>a>>b;
cout<<a+b<<endl;
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)

输出

输出一行,即表达式的值

#include <iostream>
using namespace std;
int main()
{
int a,b,c;
cin>>a>>b>>c;
cout<<(a+b)*c<<endl;
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)

输出

输出一行,即表达式的值。

#include <iostream>
using namespace std;
int main()
{
int a,b,c;
cin>>a>>b>>c;
cout<<(a+b)/c<<endl;
return 0;
}


04:带余除法

总时间限制: 1000ms 内存限制: 65536kB

描述

给定被除数和除数,求整数商及余数。

此题中请使用默认的整除和取余运算,无需对结果进行任何特殊处理。看看程序运行结果与数学上的定义有什么不同?

输入

一行,包含两个整数,依次为被除数和除数(除数非零),中间用一个空格隔开。

输出

一行,包含两个整数,依次为整数商和余数,中间用一个空格隔开。

#include <iostream>
using namespace std;
int main()
{
int a,b;
cin>>a>>b;
cout<<a/b<<" "<<a%b<<endl;
return 0;
}


05:计算分数的浮点数值

总时间限制: 1000ms 内存限制: 65536kB

描述

两个整数a和b分别作为分子和分母,既分数 a/b ,求它的浮点数值(双精度浮点数,保留小数点后9位)

输入

输入仅一行,包括两个整数a和b

输出

输出也仅一行,分数 a/b 的浮点数值(双精度浮点数,保留小数点后9位)

#include <cstdio>
using namespace std;
int main()
{
int a,b;
scanf("%d%d",&a,&b);
printf("%.9f\n",1.0*a/b);
return 0;
}


06:甲流疫情死亡率

总时间限制: 1000ms 内存限制: 65536kB

描述

甲流并不可怕,在中国,它的死亡率并不是很高。请根据截止2009年12月22日各省报告的甲流确诊数和死亡数,计算甲流在各省的死亡率。

输入

输入仅一行,有两个整数,第一个为确诊数,第二个为死亡数。

输出

输出仅一行,甲流死亡率,以百分数形式输出,精确到小数点后3位。

#include <cstdio>
using namespace std;
int main()
{
int a,b;
scanf("%d%d",&a,&b);
b=b*100;
printf("%.3f%%\n",1.0*b/a);
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位。

#include <cstdio>
using namespace std;
int main()
{
double x,a,b,c,d;
scanf("%lf%lf%lf%lf%lf",&x,&a,&b,&c,&d);
printf("%.7f\n",(((a*(x)+b)*x)+c)*x+d);
return 0;
}


08:温度表达转化

总时间限制: 1000ms 内存限制: 65536kB

描述

利用公式 C = 5 * (F-32) / 9 (其中C表示摄氏温度,F表示华氏温度) 进行计算转化。

输入

输入一行,包含一个实数f,表示华氏温度。(f >= -459.67)

输出

输出一行,包含一个实数,表示对用的摄氏温度,要求精确到小数点后5位。

#include <cstdio>
using namespace std;
int main()
{
double f,c;
scanf("%lf",&f);
c=5*(f-32)/9;
printf("%.5f\n",c);
return 0;
}


09:与圆相关的计算

总时间限制: 1000ms 内存限制: 65536kB

描述

给出圆的半径,求圆的直径、周长和面积。

输入

输入包含一个实数r(0 < r <= 10,000),表示圆的半径。

输出

输出一行,包含三个数,分别表示圆的直径、周长、面积,数与数之间以一个空格分开,每个数保留小数点后4位。

#include <cstdio>
#define PI 3.14159
using namespace std;
int main()
{
double r;
scanf("%lf",&r);
printf("%.4f %.4f %.4f\n",2*r,2*PI*r,PI*r*r);
return 0;
}


10:计算并联电阻的阻值

总时间限制: 1000ms 内存限制: 65536kB

描述

对于阻值为r1和r2的电阻,其并联电阻阻值公式计算如下:

R = 1/(1/r1 + 1/r2)

输入

两个电阻阻抗大小,浮点型,以一个空格分开。

输出

并联之后的阻抗大小,结果保留小数点后2位

#include <cstdio>
using namespace std;
int main()
{
float r,r1,r2;
scanf("%f%f",&r1,&r2);
r=1.0/(1/r1+1/r2);
printf("%.2f\n",r);
return 0;
}


11:计算浮点数相除的余数

总时间限制: 1000ms 内存限制: 65536kB

描述

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

输入

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

输出

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

#include<iostream>
#include<cstdio>
using namespace std;
double a=0,b=0;
int main ()
{
scanf("%lf%lf",&a,&b);
a=a-(int)(a/b)*b;
printf("%g",a);
return 0;
}


12:计算球的体积

总时间限制: 1000ms 内存限制: 65536kB

描述

对于半径为r的球,其体积的计算公式为V=4/3*πr3,这里取π= 3.14。

现给定r,求V。

输入

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

输出

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

#include<iostream>
#include<cstdio>
using namespace std;
double r=0,v;
int main ()
{
cin>>r;
v=3.14*(r*r*r)*4/3;
printf("%0.2f",v);
return 0;
}


13:反向输出一个三位数

总时间限制: 1000ms 内存限制: 65536kB

描述

将一个三位数反向输出。

输入

一个三位数n。

输出

反向输出n。

#include<iostream>
#include<cstdio>
using namespace std;
char c[4];
int main ()
{
gets(c);
printf("%c%c%c",c[2],c[1],c[0]);
return 0;
}


14:大象喝水

总时间限制: 1000ms 内存限制: 65536kB

描述

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

输入

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

输出

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

#include<iostream>
#include<cstdio>
using namespace std;
int h,r,s=1; double v=0;
int main ()
{
scanf("%d%d",&h,&r);
v=r*r*3.1415926535*h/1000; double x=20;
v=x/v; s=(int)v;
printf("%d",s+1);
return 0;
}


15:苹果和虫子

总时间限制: 1000ms 内存限制: 65536kB

描述

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

输入

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

输出

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

样例输入

10 4 9

样例输出

7

#include<iostream>
#include<cstdio>
using namespace std;
int n,x,y,s;
int main ()
{
scanf("%d%d%d",&n,&x,&y);
s=y/x; if (y%x!=0) s++;
s=n-s; if (s<0) s=0;
printf("%d",s);
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<cstdio>
#include<cmath>
using namespace std;
double xa,ya,xb,yb; double l=0;
int main ()
{
scanf("%lf%lf%lf%lf",&xa,&xb,&ya,&yb);
l=sqrt(pow(abs(xa-ya),2)+pow(abs(xb-yb),2));
printf("%.3lf",l);
return 0;
}


17:用边长求三角形面积

总时间限制: 1000ms 内存限制: 65536kB

描述

给定三条线段的长度,判断这三条线段是否能够构成三角形。如果能够构成,则计算其面积。

输入

输入只有一行,包含三个浮点数,分别表示三角形三边的边长,数与数之间以一个空格分开。

输出

对于可以构成三角形的情况,输出三角形的面积,保留4位小数。

对于不能构成三角形的情况, 输出“Data Error”。

样例输入

3 4 5

样例输出

6.0000

提示

三边长满足任何两边之和大于第三边,便可构成三角形。

设三边长分别为a,b,c, 令r=(a+b+c)/2,

则三角形的面积 s = sqrt(r(r-a)(r-b)(r-c))

平方根计算可以使用sqrt,请使用双精度,注意判断三角形!

#include<cstdio>
#include<cmath>
using namespace std;
double a,b,c,r,s;
int main ()
{
scanf("%lf%lf%lf",&a,&b,&c);
if (a+b<=c||a+c<=b||b+c<=a)
{printf("Data Error"); return 0;}
r=(a+b+c)/2; s=sqrt(r*(r-a)*(r-b)*(r-c));
printf("%.4lf",s);  return 0;
}


18:计算三角形面积

总时间限制: 1000ms 内存限制: 65536kB

描述

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

输入

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

输出

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

样例输入

0 0 4 0 0 3

样例输出

6.00

提示

海伦公式

其实就是前两道题的和2333

#include<cstdio>
#include<cmath>
using namespace std;
double xa,xb,ya,yb,za,zb; double l1,l2,l3,r,s;
int main ()
{
scanf("%lf%lf%lf%lf%lf%lf",&xa,&xb,&ya,&yb,&za,&zb);
l1=sqrt(pow(abs(xa-ya),2)+pow(abs(xb-yb),2));
l2=sqrt(pow(abs(xa-za),2)+pow(abs(xb-zb),2));
l3=sqrt(pow(abs(ya-za),2)+pow(abs(yb-zb),2));
r=(l1+l2+l3)/2; s=sqrt(r*(r-l1)*(r-l2)*(r-l3));
printf("%.2lf",s); return 0;
}


19:A*B问题

总时间限制: 1000ms 内存限制: 65536kB

描述

输入两个正整数A和B,求A*B。

输入

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

输出

一个整数,即A*B的值。

#include<stdio.h>
long long s; long long a,b;
int main ()
{
scanf("%d%d",&a,&b);
s=a*b; printf("%lld",s);return 0;
}


20:计算2的幂

总时间限制: 1000ms 内存限制: 65536kB

描述

给定非负整数n,求2n。

输入

一个整数n。0 <= n < 31。

输出

一个整数,即2的n次方。

用位运算可以优化(然而这水题不需要优化)

#include<cstdio>
using namespace std;
int x; long long s;
int main ()
{
scanf("%d",&x);
s=1<<x;
printf("%lld",s);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: