https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4461
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
double numC=12.01;
double numH=1.008;
double numO=16.00;
double numN=14.01;
int T;
string s;
cin>>T;
while(T--)
{
double sum=0,temp=0;
cin>>s;
for(int i=0;i<s.length();i++)
{
if(isalpha(s[i]))
{
switch(s[i])
{
case 'C':
temp=numC;
break;
case 'H':
temp=numH;
break;
case 'O':
temp=numO;
break;
case 'N':
temp=numN;
break;
}
if(isalpha(s[i+1]) || s[i+1]=='\0')
{
sum+=temp;
}
}
if(isdigit(s[i]))
{
if(s[i+1]=='\0' || isalpha(s[i+1]))
{
int n=(int)s[i];
n=n-48;
sum+=(temp*n);
}
else if(isdigit(s[i+1]))
{
int n=(int)s[i];
n=n-48;
sum+=(temp*n*10);
}
}
}
cout<<fixed<<setprecision(3)<<sum<<endl;
}
}
※查詢所有題目及解答如下※
https://jennaweng0621.pixnet.net/blog/post/403629785
※查詢其他CPE題目如下※
留言列表