PAT Basic Level 1024. 과학적 계수 법 (20)
현재 과학 계수 법의 형식 으로 실수 A 를 드 립 니 다. 프로그램 을 작성 하여 일반 숫자 표시 법 에 따라 A 를 출력 하고 모든 유효 위 치 를 유지 하도록 하 십시오.
입력 형식:
각 입력 에는 과학 계수 법 으로 표 시 된 실수 A 를 포함 하 는 테스트 용례 가 1 개 씩 포함 되 어 있다.이 숫자의 저장 길 이 는 9999 바이트 를 초과 하지 않 고 지수의 절대 치 는 9999 를 초과 하지 않 는 다.
출력 형식:
모든 테스트 용례 에 대해 한 줄 에서 일반 숫자 표시 법 에 따라 A 를 출력 하고 모든 유효 위 치 를 유지 하 며 끝의 0 을 포함 합 니 다.
입력 샘플 1:
+1.23400E-03
출력 예시 1:
0.00123400
입력 샘플 2:
-1.2E+10
출력 예시 2:
4. 567913. 복잡 하 게 썼 고 마지막 테스트 점 은 지나 갈 수 없 었 다.
코드 는 다음 과 같 습 니 다:
-12000000000
다음은 비교적 간결 하 게 쓴 다른 코드 입 니 다.
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<vector>
#include<string>
#include<sstream>
#include<fstream>
using namespace std;
int main()
{
#ifdef ONLINE_JUDGE
#else
freopen("D:\\in.txt", "r", stdin);
freopen("D:\\out.txt", "w", stdout);
#endif
char fstr[10000];
char c1;
char c2;
char c3;
char str[10000];
long long d1;
int d2(0);
string s;
double f;
while (cin.getline(fstr,10000))
{
sscanf(fstr, "%c%c.%sE%c%d", &c1, &c2, str,&c3,&d2);
sscanf(str, "%dE%c%d", &d1, &c3, &d2);
string ss = "";
for (int i = 0; str[i] != 'E'; i++)
ss += str[i];
ss = c2 + ss;
stringstream os;
if (c3 == '+')
{
if (d2 == 0)
{
ss.insert(1, ".");
}
else if (d2 < ss.length() - 1)
{
ss.insert(1 + d2, ".");
}
else if (d2 > ss.length() - 1)
{
int t = ss.length();
for (int j = 0; j < d2 + 1 -t;j++)
ss += '0';
}
}
else
{
if (d2 == 0)
ss.insert(1, ".");
else if (d2 == 1)
{
ss.insert(0, ".");
ss.insert(0, "0");
}
else
{
for (int j = 0; j < d2 - 1; j++)
ss = '0' + ss;
ss = "." + ss;
ss = '0' + ss;
}
}
if (c1 == '-')
ss = c1 + ss;
cout << ss << endl;
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.