close

敘述:烏鴉要啄石子放入有水的玻璃瓶,這隻烏鴉的數理不錯,利用排容原理取出水喝。

條件:輸入多筆測資代表石子的半徑,石子半徑要<瓶口半徑(3.5)才能放入瓶中,請用break、continue判斷。

石子的總體機要大於100*pi才可以喝到水。

請輸出「石子數量、空格、瓶中石子總體機(計算至小數點第二位)」

[體積公式:r*r*r*4*pi/3],本題側資忽略pi常數,計算、輸出不必使用pi。

Input:多筆測資,輸入石子的半徑。

Output:每筆測資進來,請輸出現在的石子數量、石頭總體積。當水滿出來時(石頭總體積>100pi),輸出「get water」並結束。


#include <iostream>
#include <iomanip> /**控制小數位數的函式庫**/
#define _USE_MATH_DEFINES
#include <cmath>
#define _USE_MATH_DEFINES
#include <math.h>
using namespace std;

double pi = M_PI;
class bottle
{
public:
    bottle(double Inp_r)
    {
        r_bottle = Inp_r;
        rock_cnt = 0;
        rock_v = 0;
    }

    int CheckRock(double Inp_r)
    {
        if(Inp_r<r_bottle)
            return 1;
        else
            return 0;
    }

    void content(double Inp_r)
    {
        rock_cnt++;
        rock_v += (4*(Inp_r*Inp_r*Inp_r)/**pi*/)/3;
        cout<<rock_cnt<<" ";
        cout<<fixed<<setprecision(2)<<rock_v<<endl; /**fixed限制為小數的位數、setprecision控制位數**/
    }

    int CheckWater()
    {
        if(rock_v>=(/*pi**/100))
            return 1;
        else
            return 0;
    }
private:
    double r_bottle;
    int rock_cnt;
    double rock_v;
};

int main()
{
    double rock;
    double bottle_r = 3.5;
    bottle obj01(bottle_r);
    for(;cin>>rock;)
    {
        if(obj01.CheckRock(rock)){
                obj01.content(rock);}

        if(obj01.CheckWater()){
            cout<<"get water"<<endl;
            break;
        }else{continue;}
    }
    return 0;
}

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 Kuihao 的頭像
    Kuihao

    溫暖午後的金針田__孕育有趣的創新

    Kuihao 發表在 痞客邦 留言(0) 人氣()