题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4788
2 100[MB] 1[B]
Case #1: 4.63% Case #2: 0.00%Hint![]()
PS:
求一个单位相差分别是1000和1024的差值!
见案例!
代码如下:
#include <cstdio>
#include <cstring>
int findd(char s[])
{
int len = strlen(s);
if(len <= 3)
return 0;
if(s[1] == 'K')
return 1;
if(s[1] == 'M')
return 2;
if(s[1] == 'G')
return 3;
if(s[1] == 'T')
return 4;
if(s[1] == 'P')
return 5;
if(s[1] == 'E')
return 6;
if(s[1] == 'Z')
return 7;
if(s[1] == 'Y')
return 8;
}
int main()
{
int t;
int num;
char s[7];
int cas = 0;
scanf("%d",&t);
while(t--)
{
scanf("%d%s",&num,s);
int k = findd(s);
if( k == 0)
{
printf("Case #%d: 0.00%%\n",++cas);
continue;
}
double t1 = 1.0, t2 = 1;
for(int i = 0; i < k; i++)
{
t1*=(1000.0/1024.0);
}
// printf("%.2lf\n",t1);
printf("Case #%d: %.2lf%%\n",++cas,(1-(t1/t2))*100.0);
}
return 0;
}
原文:http://blog.csdn.net/u012860063/article/details/40985369