POJ 1929
来源:互联网 发布:pkpm钢结构计算软件 编辑:程序博客网 时间:2024/06/06 00:19
题意:1g脂肪中含有9卡路里,1g蛋白质、1g血糖、1g淀粉中含有4卡路里,1g乙醇中含有7卡路里,要求输入脂肪、蛋白质、血糖、淀粉、乙醇的量,都为整数,单位为("%、g、C")不定,输入的每一行是每一份食物中脂肪、蛋白质、血糖、淀粉、乙醇的含量,每一行数据至少有1个数据不为0,单位为("g、C"),以'-'终止本次输入,连续出现两次'-'终止程序。要求输出所有数据中,脂肪所占的百分比,结果保留整数,四舍五入。
思路:利用数学推出所有食物的总卡力路含量和总脂肪含量,算出脂肪所占的百分比。
代码:
#include<iostream>
#include<string>
#include<iomanip>
usingnamespace std;
intmain()
{
char temp,f1,p1,su1,st1,a1;
double f,p,su,st,a,sum=0,fat=0;
int flag=0,flag2;
while(cin>>temp)
{
if(temp=='-')
{
flag++;
if(flag==1){cout<<fixed<<setprecision(0)<<fat/sum*100<<"%"<<endl;fat=sum=0;continue;}
if(flag==2)break;
}
flag=0;flag2=0;
cin.putback(temp);
cin>>f>>f1>>p>>p1>>su>>su1>>st>>st1>>a>>a1;
if(f1=='%'){f/=100.0;flag2=1;}
else if(f1=='g')f*=9;
if(p1=='%'){p/=100.0;flag2=1;}
else if(p1=='g')p*=4;
if(su1=='%'){su/=100.0;flag2=1;}
else if(su1=='g')su*=4;
if(st1=='%'){st/=100.0;flag2=1;}
else if(st1=='g')st*=4;
if(a1=='%'){a/=100.0;flag2=1;}
else if(a1=='g')a*=7;
if(flag2==1)
{
double sum1=0,sum2=0;
if(f>=1)sum1+=f;
else sum2+=f;
if(p>=1)sum1+=p;
else sum2+=p;
if(su>=1)sum1+=su;
else sum2+=su;
if(st>=1)sum1+=st;
else sum2+=st;
if(a>=1)sum1+=a;
else sum2+=a;
sum+=sum1/(1-sum2);
if(f<1)fat+=f*(sum1/(1-sum2));
else fat+=f;
}
else
{
sum+=f+p+su+st+a;
fat+=f;
}
}
return 0;
}
#include<string>
#include<iomanip>
using
int
{
}
- POJ 1929
- poj 2488
- POJ 3299
- poj 1905
- POJ 2485 Highways
- POj 1017 Packets
- poj 1020 搜索
- poj 3278 宽搜
- poj 1426 宽搜
- poj 1925 Spiderman
- poj 3259 Wormholes
- POJ 2160 BOX
- POJ 2190 ISBN
- poj 3299 humidex
- poj 2253 Frogger
- poj 2485 Highways
- poj 3041 Asteroids
- poj 数论 1845
- POJ 1674
- POJ 1799
- POJ 1862
- POJ 1906
- POJ 1922
- POJ 1929
- POJ 1969
- POJ 2000
- POJ 2005
- POJ 2017
- POJ 2070
- POJ 1931
- CSharpThinking
- POJ 1976