【1073】Scientific Notation (20 分)

简介: 【1073】Scientific Notation (20 分)【1073】Scientific Notation (20 分)
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
#include<algorithm>  
#include<map>
#include<vector>
#include<queue> 
using namespace std;  
key:注意指数为正时的小数点的移动!!! 和 是否有多余0的输出
int main(){   
  char str[10010];
  cin>>str;
  int len=strlen(str);
  if(str[0]=='-')  printf("-"); //如果是负数则输出负号
  int pos=0; //pos存放字符串中E的位置
  while(str[pos] !='E'){
    pos++;
  }
  int exp=0; //exp存放指数(先不考虑正负)
  for(int i=pos+2;i<len;i++){
    exp=exp*10+(str[i]-'0');
  }
  if(exp==0){ //特判指数为0的情况
    for(int i=1;i<pos;i++){
      printf("%c",str[i]); //直接输出E前数值
    }
  }
  if(str[pos+1] == '-'){ //如果指数为负
    printf("0.");
    for(int i=0;i<exp-1;i++){//输出(exp-1)个0
      printf("0");
    }
    printf("%c",str[1]);
    //输出除了小数点以外的数字
    for(int i=3;i<pos;i++){
      printf("%c",str[i]);
    }
  }else{  //如果指数为正
      for(int i=1;i<pos;i++){ //输出小数点移动之后的数
        if(str[i] == '.')  continue; //略过小数点
        printf("%c",str[i]); //输出当前数位
        if(i == exp+2&&pos-3!=exp){ //小数点加在位置(exp+2)上
          //原小数点和E之间的数字个数(pos-3)不能等于小数点右移位数exp
          printf(".");
        }
      }
      //如果指数exp较大,输出多余的0
      for(int i=0;i<exp-(pos-3);i++){
        printf("0");
      }
  }
  system("pause"); 
    return 0;   
}
相关文章
|
C++
【PAT甲级 - C++题解】1073 Scientific Notation
【PAT甲级 - C++题解】1073 Scientific Notation
71 0
|
C语言 C++
PAT (Basic Level) Practice (中文)1099 性感素数(20分)
“性感素数”是指形如 (p, p+6) 这样的一对素数。之所以叫这个名字,是因为拉丁语管“六”叫“sex”(即英语的“性感”)。(原文摘自 http://mathworld.wolfram.com/SexyPrimes.html) 现给定一个整数,请你判断其是否为一个性感素数。
155 0
|
前端开发 JavaScript 测试技术
类型体操之实现 type-challenges 中的 built-in 的所有类型
#built-in 是 type-challenges 库中的一个 tag,里面一共包括了 7 个类型,其中前两个就是之前介绍过的 类型体操之实现 Pick 和 Omit 中的 Pick 和 Omit
PAT (Basic Level) Practice (中文) 1010 一元多项式求导 (25 分)
PAT (Basic Level) Practice (中文) 1010 一元多项式求导 (25 分)
102 0
|
算法
PAT (Basic Level) Practice (中文)1028. 人口普查(20分)
PAT (Basic Level) Practice (中文)1028. 人口普查(20分)
110 0
|
机器学习/深度学习 算法
Data Structures and Algorithms (English) - 7-28 Review of Programming Contest Rules(30 分)
Data Structures and Algorithms (English) - 7-28 Review of Programming Contest Rules(30 分)
211 0
Data Structures and Algorithms (English) - 7-28 Review of Programming Contest Rules(30 分)
Data Structures and Algorithms (English) - 6-7 Isomorphic(20 分)
Data Structures and Algorithms (English) - 6-7 Isomorphic(20 分)
128 0
Data Structures and Algorithms (English) - 6-15 Iterative Mergesort(25 分)
Data Structures and Algorithms (English) - 6-15 Iterative Mergesort(25 分)
189 0
Data Structures and Algorithms (English) - 6-8 Percolate Up and Down(20 分)
Data Structures and Algorithms (English) - 6-8 Percolate Up and Down(20 分)
105 0
PAT (Basic Level) Practice (中文)- 1034 有理数四则运算(20 分)
PAT (Basic Level) Practice (中文)- 1034 有理数四则运算(20 分)
114 0