对科学计数法表示的数,输出其10进制的形式。
c++来做,需要考虑这些细节:
当b==0,d==0时,只输出a。
当不需要补零的情况有两种:
一种是刚好是整数,只输出a(注意1.0e1的情况是输出1);另一种是还要输出剩下的小数部分。
#include#include #define N 200005using namespace std;int a,b,dl,dr;char s[N];int main(){ scanf("%s",s); printf("%c",s[0]); dl=2; int d=0; for(dr=dl;s[dr]!='e';dr++)//dr为e的位置 if(s[dr]!='0'&&s[dr]!='e')d=1;//d不为0 for(int i=dr+1;s[i];i++) b=b*10+s[i]-'0'; if(b==0){ if(d){ printf("."); for(int i=dl;i =dr) for(int i=1;i<=b-(dr-dl);i++) printf("0"); else if(d){ printf("."); for(int i=dl+b;i
JAVA和python则可以很轻松地解决(粘一发别人的代码):
//pythonfrom decimal import *a=input()b=Decimal(a)if(round(b)==b): print ("%d"%b)else: print (b)