【openjudge 计算概论(A)】[基础编程练习(数据成分)]
1:短信计费
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int n;
int main()
{
int i;
int t=0;
scanf("%d",&n);
for(i=1;i<=n;++i)
{
int x;
scanf("%d",&x);
t+=(x/70); x%=70;
if(x>0) t++;
}
printf("%.1lf\n",t*(0.1));
return 0;
}
2:奥运奖牌计数
#include<cstdio>
using namespace std;
int au,ag,cu,ans,n;
int main()
{
int i;
scanf("%d",&n);
for(i=1;i<=n;++i)
{
int x,y,z;
scanf("%d%d%d",&x,&y,&z);
au+=x; ag+=y; cu+=z;
ans+=(x+y+z);
}
printf("%d %d %d %d\n",au,ag,cu,ans);
return 0;
}
3:整数的个数
#include<cstdio>
using namespace std;
int main()
{
int n;
scanf("%d",&n);
int t1=0,t2=0,t3=0;
for(int i=1;i<=n;++i)
{
int x;
scanf("%d",&x);
if(x==1) t1++;
if(x==5) t2++;
if(x==10) t3++;
}
printf("%d\n%d\n%d\n",t1,t2,t3);
return 0;
}
4:整数奇偶排序
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int j[15],o[15],a[15],t1,t2;
int main()
{
int i;
while((scanf("%d%d%d%d%d%d%d%d%d%d",&a[1],&a[2],&a[3],&a[4],&a[5],&a[6],&a[7],&a[8],&a[9],&a[10])==10))
{
memset(j,0,sizeof(j));
memset(o,0,sizeof(o));
t1=t2=0;
for(i=1;i<=10;++i)
if(a[i]%2) j[++t1]=a[i];
else o[++t2]=a[i];
sort(j+1,j+t1+1);
sort(o+1,o+t2+1);
for(i=t1;i>0;--i) printf("%d ",j[i]);
for(i=1;i<=t2;++i) printf("%d ",o[i]);
printf("\n");
}
return 0;
}
5:细菌的战争
#include<cstdio>
using namespace std;
int n;
int main()
{
scanf("%d",&n);
while(n--)
{
int g,b,ans=0;
scanf("%d%d",&b,&g);
while(b>0)
{
ans++;
b-=g;
b*=2; g+=g/20;
if(b>1000000) b=1000000;
}
printf("%d\n",ans);
}
return 0;
}
6:能被3,5,7整除的数
#include<cstdio>
using namespace std;
int main()
{
int n;
while(scanf("%d",&n)==1)
{
if(!(n%3)&&!(n%5)&&!(n%7)) {printf("3 5 7\n"); continue;}
if(!(n%3)&&!(n%5)) {printf("3 5\n"); continue;}
if(!(n%3)&&!(n%7)) {printf("3 7\n"); continue;}
if(!(n%5)&&!(n%7)) {printf("5 7\n"); continue;}
if(!(n%3)) {printf("3\n"); continue;}
if(!(n%5)) {printf("5\n"); continue;}
if(!(n%7)) {printf("7\n"); continue;}
printf("%d\n",n);
}
return 0;
}
7:谁考了第k名
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
struct node{
long long num;
double score;
}a[110];
int n,k;
int tmp(node a,node b)
{
return a.score>b.score;
}
int main()
{
scanf("%d%d",&n,&k);
for(int i=1;i<=n;++i) scanf("%lld%lf",&a[i].num,&a[i].score);
sort(a+1,a+n+1,tmp);
printf("%lld %g\n",a[k].num,a[k].score);
return 0;
}
既然无能更改,又何必枉自寻烦忧