Live Archive 6542 Hard Disk Drive
题目大意:有这么一个小常识,坑跌的硬盘生产厂家会认为像B、KB、MB、GB、TB…这些单位之间是1000进制,但其实(操作系统认为)是1024进制。这里要算一算生产厂家坑掉了你多少存储空间(差/实际总共的×100%)。
题目分析:给你的是一个硬盘的大小,那么前面的数是没用的(因为除的时候会消掉),只需要看它的单位,that is to say整个题目只有九种答案,打表输出就行了。
code:
#include<stdio.h>
int main()
{
int i=2,t,n;
char s[10];
double a[9]={1,125./128};
while(i!=9)
{
a[i]=a[i-1]*a[1];
i++;
}
scanf("%d",&t);
for(i=1;i<=t;i++)
{
scanf("%*d%s",s);
switch(s[1])
{
case'B':n=0;break;
case'K':n=1;break;
case'M':n=2;break;
case'G':n=3;break;
case'T':n=4;break;
case'P':n=5;break;
case'E':n=6;break;
case'Z':n=7;break;
case'Y':n=8;break;
}
printf("Case #%d: %.2f%%\n",i,(1-a[n])*100);
}
return 0;
}
PS:整场比赛就这么一水,居然还一wrong……
20min啊