
次方计算
-迪拜语言
2023年2月15日发(作者:鹅湖书院)求a的b次方,a可以是小数。
#include
#include
#defineMAX300
voidfun(inta[],intb[],intc[],intn)
{
inti,temp=0,j;
for(i=0;i { for(j=0;j<=n;j++) { c[i+j]=c[i+j]+b[i]*a[j]+temp; if(c[i+j]>=10) { temp=c[i+j]; c[i+j]=c[i+j]%10; temp=temp/10; } else temp=0; } } } voidfang(charaa[],intbb,intn) { inti,j; longintm=0,temp=0; inta[MAX]={0}; intb[MAX]={0}; intc[MAX]={0}; for(i=n-1,j=0;i>=0;i--,j++) { if(aa[i]=='.') { m=j; j--; continue; } a[j]=aa[i]-'0'; } for(i=0;i b[i]=a[i]; if(bb==1) for(i=0;i c[i]=a[i]; else { for(i=1;i { fun(a,b,c,n); for(j=0;j { b[j]=c[j]; c[j]=0; } } for(j=0;j { c[j]=b[j]; } } temp=0; for(i=1;i<=bb;i++) temp=m+temp; for(i=MAX-1;i>=0;i--) if(c[i]!=0) break; if(i+1>temp) { for(j=i;j>=0;j--) { if(temp==j+1) printf("."); printf("%d",c[j]); } printf("n"); } else if(i+1==temp) { printf("0."); for(j=i;j>=0;j--) printf("%d",c[j]); } else { printf("0."); for(j=temp-1;j>=0;j--) printf("%d",c[j]); } } voidmain() { intn,bb; charaa[MAX]; printf("请输入a的b次方a==:"); gets(aa); n=strlen(aa); printf("请输入a的b次方b==:"); scanf("%d",&bb); printf("%s的%d次方:",aa,bb); fang(aa,bb,n); }