B 1024/A 1073
#include#include #include using namespace std; int main() { char s[1000001];//存放初始数据 char m[1000001];//存放中间的数字 char m1[1000];//存放指数的数字 cin>>s; int b=0,t=0;//b代表指数的正负,t存放指数部分 0 代表正 1代表负 if(s[0]=='-') cout<<"-";//输出该数字的正负号 long long i,j=0; for( i=1;i 以下代码参考 【有小小的改动】
(31条消息) 测试点错的来:1024 科学计数法 (20分)_来老铁干了这碗代码的博客-CSDN博客
#includeusing namespace std; int main() { char cc[10000]; long long x2; char c1, c2, c3; scanf("%c%c.%[^E]E%c%lld", &c1, &c3, cc, &c2, &x2);//绝了,看这里!!!!!!!! string s; if(c2 == '-') { for(int i = 0; i < x2; i++) { if(i==1) s += '.'; s += '0'; } s += c3; s += cc; } else { s+= c3; s+= cc; if(s.length()-1 < x2) {//代表小数点后的位数小于指数 需要补0 int len = s.length()-1; for(int i = 0; i < x2-len; i++) s+='0'; } else if(s.length() -1> x2){//代表小数点后的位数大于指数 不需要补0 需要小数点 s.insert(x2+1, ".");//在字符串中一开始小数点的位置在1上,平移x2个位置,字符串第x2+1个位置上, } } if(c1=='-') s.insert(0,"-"); cout << s; return 0; } 柳神的代码也很好,如下
(31条消息) 1073. Scientific Notation (20)-PAT甲级真题_柳婼的博客-CSDN博客



