90分求助!!
查看原帖
90分求助!!
1546978
tg636楼主2024/11/19 19:00
#include <iostream>
#include <string>
#include <iomanip>
using namespace std;
int main()
{
	long double num = 0;
	int  s = 0;
	string n;
	cin >> n;
	for (int i = 0; i < n.size(); i++)
	{
		if (n[i] >= '0' && n[i] <= '9')
		{
			if (s == 0)
			{
			    num = n[i]-'0';
				s++;
			}
			else {
				num = (num * 10) +( n[i]-'0');
				s++;
			}
		}
	}

	for (int i = 0; i < n.size(); i++)
	{
		if (n[s] == 'G')
		{
			if (n[s + 4] == 'M')
			{
				num = num * 1024;
				cout <<setiosflags(ios::fixed) << setprecision(6) <<num;
				break;
			 }
			else if (n[s + 4] == 'K')
			{
				num = num * 1024 * 1024;
				cout << setiosflags(ios::fixed) << setprecision(6) << num;
				break;
			}
			else if (n[s + 4] == 'B')
			{
				num = num * 1024 * 1024*1024;
				cout << setiosflags(ios::fixed) << setprecision(6) << num;
				break;
			}
		}
		else if (n[s] == 'M')
		{
			if (n[s + 4] == 'G')
			{
				num = num / 1024;
				cout << setiosflags(ios::fixed) << setprecision(6) << num;
				break;
			}
			else if (n[s + 4] == 'K')
			{
				num = num * 1024;
				cout << setiosflags(ios::fixed) << setprecision(6) << num;
				break;
			}
			else if (n[s + 4] == 'B')
			{
				num = num * 1024 * 1024;
				cout << setiosflags(ios::fixed) << setprecision(6) << num;
				break;
			}
		}
		else if (n[s] == 'K')
		{
			if (n[s + 4] == 'G')
			{
				num =( (num / 1024) / 1024);
				cout << setiosflags(ios::fixed) << setprecision(6) << num;
				break;
			}
			else if (n[s + 4] == 'M')
			{
				num = num / 1024;
				cout << setiosflags(ios::fixed) << setprecision(6) << num;
				break;
			}
			else if (n[s + 4] == 'B')
			{
				num = num *1024;
				cout << setiosflags(ios::fixed) << setprecision(6) << num;
				break;
			}
		}
		else if (n[s] == 'B')
		{
			if (n[s + 3] == 'G')
			{
				num =( ((num / 1024) / 1024) / 1024);
				cout << setiosflags(ios::fixed) << setprecision(6) << num;
				break;
			}
			else if (n[s + 3] == 'M')
			{
				num = ((num / 1024) / 1024);
				cout << setiosflags(ios::fixed) << setprecision(6) << num;
				break;
			}
			else if (n[s + 3] == 'K')
			{
				num = num / 1024;
				cout << setiosflags(ios::fixed) << setprecision(6) << num;
				break;
			}
		}
		
	}
	
	return 0;
	
}
2024/11/19 19:00
加载中...