您的位置:首页 > 其它

poj 1929 Calories from Fat 模拟水题

2015-11-19 16:02 549 查看
//poj 1929
//sep9
#include <iostream>
using namespace std;
double tot,fat;
char s[5][128];

void get_value(int i,double &v,int &tag)
{
int p=0;
v=0;
while(s[i][p]<='9'&&s[i][p]>='0')
v=10*v+s[i][p]-'0',++p;
if(s[i][p]=='g')
tag=0;
else if(s[i][p]=='C')
tag=1;
else
tag=2;
}

void insert()
{
double tmp_tot=0,tmp_fat=0;
double percent=0,weight=0;
double v,v1;
int tag,tag1;
for(int i=0;i<5;++i){
get_value(i,v,tag);
if(i==0)
v1=v,tag1=tag;
if(tag==0){
if(i==0)
weight+=v*9;
else if(i==4)
weight+=v*7;
else
weight+=v*4;
}else if(tag==1)
weight+=v;
else
percent+=v;
}
tmp_tot=weight/(1-percent/100);
if(tag1==0)
tmp_fat=v1*9;
else if(tag1==1)
tmp_fat=v1;
else
tmp_fat=tmp_tot*(v1/100);
tot+=tmp_tot,fat+=tmp_fat;
}

int main()
{
tot=0,fat=0;
int flag=0;
while(1){
scanf("%s",s[0]);
if(s[0][0]=='-'){
if(flag==0){
printf("%.0lf%%\n",fat*100/tot);
tot=0,fat=0,flag=1;
}else
break;
}else{
flag=0;
for(int i=1;i<5;++i)
scanf("%s",s[i]);
insert();
}

}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  poj 算法