您的位置:首页 > 其它

POJ-1001

2014-11-03 22:13 295 查看
Sample Output
548815620517731830194541.899025343415715973535967221869852721.0000000514855464107695612199451127676715483848176020072635120383542976301346240143992025569.92857370126648804114665499331870370751166629547672049395302429448126.76412102161816443020690903717327667290429072743629540498.1075960194566517745610440100011.126825030131969720661201
HintIf you don't know how to determine wheather encounted the end of input:s is a string and n is an integer
C++while(cin>>s>>n){...}cwhile(scanf("%s%d",s,&n)==2) //to  see if the scanf read in as many items as you want/*while(scanf(%s%d",s,&n)!=EOF) //this also work    */{...}
SourceEast Central North America 1988
#include<stdio.h>#include<stdlib.h>#include<string.h>void main(){char s[7],str1[200]="0";int i,n,L,ls,j,k,ls1,len,index;int del,del1,del2,ii;int tmp1,tmp2,tmp3,flag1=0,flag2=0,tmp4,flag3=0;for(ii=0;ii<200;str1[ii]='0',ii++);while(scanf("%s%d",s,&n)!=EOF) {if(n<=0||n>25) continue;flag3=0;//cal the dells=strlen(s);for(i=0,del=0;i<ls;i++){if(del) s[i-1]=s[i];if(s[i]=='.') del=ls-i-1;}if(del) {ls--;s[ls]='\0';}char data1[200]="1.0";for(i=n;i>0;i--){//data1*=data;ls1=strlen(data1);for(k=0,del1=0;k<ls1;k++){if(del1) data1[k-1]=data1[k];if(data1[k]=='.') del1=ls1-k-1;}if(del1) {ls1--;data1[ls1]='\0';}for(j=ls-1;j>=0;j--){flag1=0;flag2=0;for(k=ls1-1;k>=0;k--){tmp4=str1[j+k+1]-48;tmp1=s[j]-48;tmp2=data1[k]-48;tmp3=tmp1*tmp2+flag1;if(tmp3>9){flag1=tmp3/10;tmp3=tmp3%10;}else flag1=0;tmp4=tmp4+tmp3+flag2;if(tmp4>9){flag2=1;tmp4=tmp4%10;}else flag2=0;str1[j+k+1]=tmp4+'0';//printf("str1[%d]=%c\n",k+j+1,str1[j+k+1]);}str1[j+k]=flag1+flag2+'0';}len=ls+ls1;del2=del+del1;if(del2){data1[len-del2]='.';len++;data1[len]='\0';}for(index=0;index<len;index++){if(index<len-del2-1) {data1[index]=str1[index];}elsedata1[index+1]=str1[index];//printf("data1[%d]=%c,str1[%d]=%c\n",index,data1[index],index,str1[index]);str1[index]='0';}}L = strlen(data1);for (i=L-1;i>=0;i--) {if(data1[i]=='0'&&flag3==0) flag3=0;else flag3=1;if(flag3==0) data1[i]='\0';else break;}if(data1[i]=='.') data1[i]='\0';L=strlen(data1);for (flag3=0,i=0;i<L;i++) {if (data1[i]=='0'&&flag3==0) flag3=0;else flag3=1;if(flag3) putchar(data1[i]);}putchar('\n');}}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: