POJ之路6--1005,6

来源:互联网 发布:2000年人口普查数据 编辑:程序博客网 时间:2024/03/29 08:15

一、1005

AC代码如下:
#include<iostream>#include<cmath>using namespace std;int main(){float a,b,m;int i,n,temp;cin>>temp;for(i=1;i<=temp;i++){cin>>a>>b;m=sqrt(a*a+b*b);n=0;while((0.5*m*m*3.1416-50*n)>0)n++;printf("Property %d: This property will begin eroding in year %d.\n",i,n);}printf("END OF OUTPUT.");return 0;}

二、1006

代码一,考虑到一种情况会出错,但样例测试数据没有此种情况,没修改尝试提交试试,结果为wrong:
#include<iostream>#include<cmath>using namespace std;int main(){short p,e,i,d,j,k=0;cin>>p>>e>>i>>d;while((p+e+i+d)!=-4){k++;p=p%23;e=e%28;i=i%33;for(j=1;j<=21252;j++){if((j-p)%23==0&&(j-e)%28==0&&(j-i)%33==0)break;}printf("Case %d: the next triple peak occurs in %d days.\n",k,j-d);cin>>p>>e>>i>>d;}return 0;}

因为j-d可能为负,如1 1 1 5此时输出为-4,错误。按照思路修改:

#include<iostream>#include<cmath>using namespace std;int main(){short p,e,i,d,j,k=0,temp=0;cin>>p>>e>>i>>d;while((p+e+i+d)!=-4){k++;p=p%23;e=e%28;i=i%33;for(j=1;j<=21252;j++){if((j-p)%23==0&&(j-e)%28==0&&(j-i)%33==0)break;}if(j-d>0)temp=j-d;else temp=21252+j-d;printf("Case %d: the next triple peak occurs in %d days.\n",k,temp);cin>>p>>e>>i>>d;}return 0;}

三、1007

#include<iostream>using namespace std;int main(){int str_num,num;int i,j,k;char str[105][55];int m[100];int temp,temp_num;cin>>str_num>>num;for(i=0;i<num;i++){cin>>str[i];m[i]=0;for(j=0;j<str_num;j++)for(k=j;k<str_num;k++){if(str[i][j]>str[i][k])m[i]++;}}for(i=0;i<num;i++){temp=m[0];temp_num=0;for(j=1;j<num;j++){if(temp>m[j]){temp=m[j];temp_num=j;}}m[temp_num]=1000000;  //设置为大于逆向数的最大值cout<<str[temp_num]<<endl;}return 0;}



0 0
原创粉丝点击