HDOJ題目(11.22-12.22)
阿新 • • 發佈:2018-11-23
hdoj_2000
注意getchar的用方法,按照以上的輸入之後,處理三個字元以外還會有換行符
#include<iostream> #include<cstdio> #include<algorithm> #include<algorithm> using namespace std; int main() { char arr[3]; while(scanf("%c%c%c",&arr[0],&arr[1],&arr[2])!=EOF) { //cout<<getchar(); //輸出是10 //cout<<(int)('\n'); //輸出也是10 getchar(); sort(arr,arr+3); printf("%c %c %c\n",arr[0],arr[1],arr[2]); } }
hdoj_2002
#include<iostream> #include<cstdio> #include<algorithm> #include<algorithm> #include<cmath> #define PI 3.1415927 using namespace std; int main() { //double精度高,有效數字16位,float精度7位 //用double才夠表示,不然會溢位 double r; double rst; while(scanf("%lf",&r)!=EOF) { rst=(4/3.0)*PI*pow(r,3);//注意一定要3.0或者4.0,不然3/4=1 printf("%.3lf\n",rst); } }
hdoj_2005
#include<iostream> #include<cstdio> #include<algorithm> #include<algorithm> #include<cmath> using namespace std; int main() { int year,month,day; char ch; int arr1[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; int arr2[13]={0,31,29,31,30,31,30,31,31,30,31,30,31}; while(scanf("%d%c%d%c%d",&year,&ch,&month,&ch,&day)!=EOF) { int rst=0; //算完一次要歸0 if(year%400==0 ||(year%4==0 && year%100!=0))//閏年 { for(int i=0;i<month;i++) rst+=arr2[i]; rst+=day; } else//非閏年 { for(int i=0;i<month;i++) rst+=arr1[i]; rst+=day; } printf("%d\n",rst); } }
hdoj_2006
#include<iostream> #include<cstdio> #include<algorithm> #include<algorithm> #include<cmath> using namespace std; int main() { int n; while(scanf("%d",&n)!=EOF) { int arr[10000];//不可以用int arr[n]本地正確,但是oj會編譯出錯 long long rst=1; for(int i=0;i<n;i++) { scanf("%d",&arr[i]); if(arr[i]%2!=0) rst*=arr[i]; } printf("%lld\n",rst); //用lld不然會溢位 } }
hdoj_2007
#include<iostream> #include<cstdio> #include<algorithm> #include<algorithm> #include<cmath> using namespace std; int main() { int L,R; while(scanf("%d %d",&L,&R)!=EOF) { long long rst1=0,rst2=0; if(L>R) swap(L,R) ;//坑點在此,題目沒有明說大小 for(int i=L;i<=R;i++) { if(i%2==0) rst1+=pow(i,2); else rst2+=pow(i,3); } printf("%lld %lld\n",rst1,rst2); } }