View Code of Problem 96

#include <iostream>
#include <string>
#include <cmath>
using namespace std;
int main(){
	string s;
	while(cin>>s){
		double flag=0,f=0;
		if(s[0]=='0')	break;
		if(s[s.size()-2]>='0'&&s[s.size()-2]<='9'){
			flag=1;f=1;
		}
		else{
			if(s[s.size()-2]=='K'){
				flag=1024;
				f=1000;
			}
			else if(s[s.size()-2]=='G'){
				flag=1024*1024*1024;
				f=1000*1000*1000;
			}
			else if(s[s.size()-2]=='M'){
				flag=1024*1024;
				f=1000*1000;
			}
			else if(s[s.size()-2]=='T'){
				flag=pow(2,40);
				f=pow(10,12);
			}
		}
			string temp;
		if(flag!=1)
			temp=s.substr(0,s.size()-2);
		else{
			cout<<"0"<<endl;
			continue;
		}
		long long a=stol(temp);
		printf("%.lf\n",a*flag-a*f);
	}
} 

Double click to view unformatted code.


Back to problem 96