POJ 1929 Calories from Fat G++

xiaoxiao2021-02-28  102

 #include <iostream> #include <cstdio> #include <string> using namespace std; //英语 看博友分析 模拟 int g_k(int i,int zhi) { if(i==1) { return zhi*9; }else if(i==2 || i==3 || i==4) { return zhi*4; }else if( i==5) { return zhi*7; } } int main() { int flag=0; while(1) { double hk=0;//所有食物的卡路里之和 double fk=0;//所有食物的脂肪卡路里之和 while(1) { double sk=0;//卡路里之和 double sb=0;//百分比之和 string fat; double tf; for(int i=1;i<=5;i++) { string s; cin>>s; if(i==1 && s=="-") { flag++; break; }else { flag=0; } if(i==1) { fat=s; } int num=0; for(int j=0;j<s.size()-1;j++) { num=num*10+s[j]-'0'; } if(i==1) { tf=num; } if(s[s.size()-1]=='g') { sk=sk+g_k(i,num); }else if(s[s.size()-1]=='%') { sb=sb+num; }else if(s[s.size()-1]=='C') { sk=sk+num; } } if(flag==1) { break; }else if(flag==2) { return 0; } sk=sk/(1.0-(((double)sb)/100.0)); if(fat[fat.size()-1]=='g') { tf=g_k(1,tf); }else if(fat[fat.size()-1]=='%') { tf=(tf/100.0)*sk; }else if(fat[fat.size()-1]=='C') { tf=tf; } hk=hk+sk; fk=fk+tf; //cout<<tf<<" "<<sk<<endl; //cout<<fk<<" "<<hk<<endl; } //cout<<fk<<" "<<hk<<endl; cout<<(int)((fk/hk)*100.0+0.5)<<"%"<<endl;//四舍五入 } return 0; }

 

转载请注明原文地址: https://www.6miu.com/read-55321.html

最新回复(0)