杭電OJ100題——2002-2005(C++版)

計算球體積

Problem Description

根據輸入的半徑值,計算球的體積。

 Input

輸入數據有多組,每組佔一行,每行包括一個實數,表示球的半徑。

 Output

輸出對應的球的體積,對於每組輸入數據,輸出一行,計算結果保留三位小數。

 Sample Input

1 1.5

 Sample Output

4.189 14.137

Hint

#define PI 3.1415927

#include<iostream>
#define PI 3.1415927
#include<cmath>
#include<iomanip>
using namespace std;

int main(){
    double radius,volume;
    while(cin>>radius){
        volume = 4*PI*pow(radius,3)/3;
        cout<<setiosflags(ios::fixed)<<setprecision(3)<<volume<<endl;
    }
}

 

求絕對值

Problem Description

求實數的絕對值。

 Input

輸入數據有多組,每組佔一行,每行包含一個實數。

 Output

對於每組輸入數據,輸出它的絕對值,要求每組數據輸出一行,結果保留兩位小數。

 Sample Input

123

-234.00

 Sample Output

123.00 
234.00
#include<iostream>
#include<cmath>
#include<iomanip>
using namespace std;

int main(){
    double num;
    while(cin>>num){
        num = fabs(num);
        cout<<setiosflags(ios::fixed)<<setprecision(2)<<num<<endl;
    }
}

 

成績轉換

Problem Description

輸入一個百分制的成績t,將其轉換成對應的等級,具體轉換規則如下:
90~100爲A;
80~89爲B;
70~79爲C;
60~69爲D;
0~59爲E;

 Input

輸入數據有多組,每組佔一行,由一個整數組成。

 Output

對於每組輸入數據,輸出一行。如果輸入數據不在0~100範圍內,請輸出一行:“Score is error!”。

 Sample Input

56 
67 
100 
123

 Sample Output

E 
D 
A 
Score is error!
#include<iostream>
using namespace std;

int main(){
    int t,result;
    while(cin>>t){
        result = t/10;
        if(t>=-9&&t<=-1)
            result = -1;
        switch(result){
        case 10:
        case 9:
            cout<<"A"<<endl;break;
        case 8:
            cout<<"B"<<endl;break;
        case 7:
            cout<<"C"<<endl;break;
        case 6:
            cout<<"D"<<endl;break;
        case 5:
        case 4:
        case 3:
        case 2:
        case 1:
        case 0:
            cout<<"E"<<endl;break;
        default:
            cout<<"Score is error!"<<endl;
            break;
        }
    }
}

此題要注意負數,當輸入-9以內的數時應進行判斷。

第幾天?

Problem Description

給定一個日期,輸出這個日期是該年的第幾天。

 Input

輸入數據有多組,每組佔一行,數據格式爲YYYY/MM/DD組成,具體參見sample input ,另外,可以向你確保所有的輸入數據是合法的。

 Output

對於每組輸入數據,輸出一行,表示該日期是該年的第幾天。

 Sample Input

1985/1/20 
2006/3/12

 Sample Output

20 
71

#include<cstdio>
int main()
{
	int year,month,day;
	int days_of_month[12]={31,28,31,30,31,30,31,31,30,31,30,31};
	while(~scanf("%d/%d/%d",&year,&month,&day))
	{
		int sum=0;
		for(int i=0;i<month-1;i++)
			sum+=days_of_month[i];
		if(year%400==0||(year%4==0&&year%100!=0))
		{
			if(month>2)
				sum+=day+1;
			else
				sum+=day;
		}
		else
			sum+=day;
		printf("%d\n",sum);
	}
	return 0;
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章