noip第2课作业

时间:2022-09-25 21:57:45

1.    大象喝水

【问题描述】

一只大象口渴了,要喝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;
    //定义体积 
    double v;
    //定义总数 
    int n;
    double const pi = 3.14;
    //输入高度和半径 
    cin >> h >> r; 
    
    v = pi*r*r*h;
    n = 20*1000/v+1;
    cout << n << endl; 
    return 0;
}

2.    ASCII码转换

【问题描述】

输入一个ASCII码,输出对应的字符。

输入:一个整数,即字符的ASCII码,保证存在对应的可见字符。

输出:一行,包含相应的字符。

【样例输入】

65

【样例输出】

A

#include <iostream>
using namespace std;
int main(){
    int n;
    cin >> n;
    cout << char(n) << endl;
    return 0;
}

1.    求平均分

【问题描述】

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

输入:两个整数,分别为x和y的值。

输出:一位数可能是整数也可能是浮点数。

【样例输入】

1 1

【样例输出】

86

#include <iostream>
using namespace std;
int main(){
    int x, y;
    double ave;
    cin >> x >> y; 
    ave = (87.0*x + 85.0*y)/(x+y);
    cout << ave << endl;
    return 0;
}

2.    浮点数向零舍入

【问题描述】

描述输入一个单精度浮点数,将其向零舍入到整数。

说明:向零舍入的含义是,正数向下舍入,负数向上舍入。

提示:可以使用强制类型转换来实现。

输入:一个单精度浮点数。

输出:一个整数,即向零舍入到整数的结果。

【样例输入】

2.3

【样例输出】

2

#include <iostream>
using namespace std;
int main(){
    double n;
    cin >> n;
    cout << int(n) << endl;
    return 0;
}

3.    等差数列末项

【问题描述】

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

输入:一行,包含三个整数a1,a​2,n。-100 <= a1,a​2 <= 100,0 < n <= 1000。

输出:一个整数,即第n项的值。

【样例输入】

1 4 100

【样例输出】

298

#include <iostream>
using namespace std;
int main(){
    int a1, a2, an, n;
    cin >> a1 >> a2 >> n;
    an = (a2-a1)*(n-1)+a1;
    cout << an << endl; 
    return 0;
}