PAT B 급 1024 과학 계수 법

10156 단어 PTA
땡땡 땡땡, 이 문 제 는 좀 어 려 운 것 같 지만, 낭자 하 게 쓰다 보 니 지나 가 고, 깊 은 인상 을 돌 이 켜 보면?
1024
  • 제목
  • 문제 풀이
  • 문 제 를 보고 분석 해 보 자
  • 말 이 많 지 않 습 니 다. 코드 넣 기
  • 제목.
    1024 과학 계수 법 (20 점) 과학 계수 법 은 과학자 들 이 크 거나 작은 숫자 를 나타 내 는 편리 한 방법 으로 정규 표현 식 [±] [1 - 9] 을 만족시킨다.현재 과학 계수 법의 형식 으로 실수 A 를 드 립 니 다. 프로그램 을 작성 하여 일반 숫자 표시 법 에 따라 A 를 출력 하고 모든 유효 위 치 를 유지 하도록 하 십시오.
    입력 형식: 각 입력 은 과학 계수 법 으로 표 시 된 실수 A 를 포함 합 니 다.이 숫자의 저장 길 이 는 9999 바이트 를 초과 하지 않 고 지수의 절대 치 는 9999 를 초과 하지 않 는 다.출력 형식: 모든 테스트 용례 에 대해 한 줄 에 일반 숫자 표시 법 에 따라 A 를 출력 하고 모든 유효 비트 가 보 존 됩 니 다. 끝의 0 을 포함 합 니 다.
    입력 샘플 1: +1.23400E-03 출력 샘플 1: 0.00123400 입력 샘플 2: -1.2E+10 출력 샘플 2: -12000000000해제
    문 제 를 보고 분석 해 보 세 요.
  • 지 수 는 999 에 달 할 수 있 기 때문에 숫자 표시 사용 을 포기 하고 문자열 이나 직접 출력 결 과 를 선택 합 니 다 (출력 과정 에서 입력 과 관련 되 지 않 기 때 문 입 니 다). ok 저 는 직접 출력 을 선택 하여 편리 하 게 합 니 다.
  • 그리고 모든 유효 자릿수 를 유지 해 야 한 다 는 것 은 모든 E 이전의 숫자 를 출력 해 야 한 다 는 뜻 이다.

  • 말 이 많 지 않 으 면 코드 를 놓 아 라.
    소 가죽 C + +
    #include
    #include
    
    using namespace std;
    
    int main()
    {
        string str;
        cin>>str;
    
        int e = str.find("E"); //  E   
        int index = 0; //    
        int zhi;//    
        if(str[e + 1] == '+') zhi = 1;
        else zhi = -1;
        for(int i = e + 2;i < str.size();i ++) //   
        {
            index = index * 10 + str[i] - '0';
        }
    
        if(str[0] == '-') cout<<'-';//          
    
        if(zhi < 0) //      
        {
            cout<<"0."; //     
            for(int i = 0;i <index - 1;i ++) //      
            {
                cout<<'0';
            }
            cout<<str[1];//        
            for(int i = 3;i < e;i ++)//    E     
            {
                cout<<str[i];
            }
        }
        else //     
        {
            cout<<str[1];//        
            for(int i = 3;i < index + 3 || i < e;i ++) //  E         
            {
                if(i < e) cout<<str[i]; //  i
                else cout<<'0'; //       ,       0
                if(i - 3 == index - 1 && (i < e - 1 || i < index + 3 - 1))//                   ,             
                	cout<<'.';
            }
        }
        cout<<endl;
        return 0;
    }
    
    

    Happy everyday!

    좋은 웹페이지 즐겨찾기