1024 과학 계수 법 (20 점) + 사고 분석
질문
해결 방법
후기
문제.
과학 계수 법 은 과학자 들 이 매우 크 거나 작은 숫자 를 나타 내 는 편리 한 방법 으로 정규 표현 식 [±] [1 - 9] 를 만족 시 키 는 것 이다.
현재 과학 계수 법의 형식 으로 실수 A 를 드 립 니 다. 프로그램 을 작성 하여 일반 숫자 표시 법 에 따라 A 를 출력 하고 모든 유효 위 치 를 유지 하도록 하 십시오.입력 형식:
각 입력 에는 과학 계수 법 으로 표 시 된 실수 A 를 포함 하 는 테스트 용례 가 1 개 씩 포함 되 어 있다.이 숫자의 저장 길 이 는 9999 바이트 를 초과 하지 않 고 지수의 절대 치 는 9999 를 초과 하지 않 는 다.출력 형식:
모든 테스트 용례 에 대해 한 줄 에서 일반 숫자 표시 법 에 따라 A 를 출력 하고 모든 유효 위 치 를 유지 하 며 끝의 0 을 포함 합 니 다.입력 샘플 1:
+1.23400E-03
출력 예시 1:
0.00123400
입력 샘플 2:
-1.2E+10
출력 예시 2:
-12000000000
해결 방법
분석: 문자열 처리 1. 문자열 앞의 기 호 를 먼저 처리 하고 문자 로 직접 입력 합 니 다.하면, 만약, 만약...2. find 함수 와 substr 함 수 를 이용 하여 밑 에 있 는 문자열 을 구하 고 stoic, substr, find 함 수 를 이용 하여 지 수 를 구하 고 밑 에 있 는 밑 에 있 는 밑 에 있 는 소수점 뒤의 문자열 길 이 를 구하 십시오.3. 분류 토론♦지수 가 0 보다 작 으 면먼저 exp 개 0 을 출력 하고 밑 에 있 는 문자열 을 출력 합 니 다.그 중 소수점 이 어떻게 출력 되 는 지 주의 하 세 요.♦지수 가 0 보다 크 면또한 두 가지 상황 으로 나 눌 수 있다. (1) 지수 가 밑 의 소수점 뒤의 문자열 길이 보다 크 면 출력 밑 의 수 를 출력 한 다음 에 이들 의 차 이 를 0 (2) 으로 출력 한다. 지수 가 밑 의 소수점 뒤의 문자열 길이 보다 작 으 면 소수점 을 지수 한 자릿수 로 옮긴다.
#include
#include
#include
using namespace std;
int main()
{
char c;
int exp, len;
cin >> c;
if (c == '-') cout << c;
string s, s1;
cin >> s;
s1 = s.substr(0, s.find('E'));//
exp = stoi(s.substr(s.find('E') + 1));//
len = s1.size() - s1.find('.') - 1;//
if (exp < 0)
{
for (int i = 0; i < abs(exp); i++)
{
if (i == 1) cout << ".";
cout << "0";
}
for (int i = 0; i < s1.size(); i++)
{
if (s1[i] == '.') continue;
cout << s1[i];
}
}
else
{
if (len <= exp)
{
for (int i = 0; i < s1.size(); i++)
{
if (s1[i] == '.') continue;
cout << s1[i];
}
for (int i = 0; i < (exp - len); i++)
{
cout << "0";
}
}
else
{
for (int i = 0; i <s1.size(); i++)
{
if (s1[i] == '.') continue;
if (i == exp + 2) cout << ".";
cout << s1[i];
}
}
}
return 0;
}
후기
이 문 제 는 난이도 가 크 지 않 지만 고려 한 상황 이 좀 많다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.