#include "stdio.h" #include "string.h" int a[100]={0},b[100]={0},move[100]={0},result[100]={0} ; int fac(); int main() { int i,j; char str1[100],str2[100]; printf("please input a number :\n"); gets(str1); for(j=0,i=strlen(str1)-1;i>=0;i--,j++) a[j]=str1[i]-'0'; printf("please input other number :\n"); gets(str2); for(j=0,i=strlen(str2)-1;i>=0;i--,j++) b[j]=str2[i]-'0'; fac(); for(i=99;result[i]==0;i--); for(;i>=0;i--) printf ("%d",result[i]); return 0; } int fac() { int i,j,k; int tempi,tempj; int tempx; int flag; for(i=99;b[i]==0;i--); tempi=i; for(i=0;i<=tempi;i++) { for(j=99;a[j]==0;j--); tempj=j; flag=0; for (j=0;(j<=tempj || flag==1);j++) { flag=0; tempx=a[j]*b[i]; if(result[j+i]+move[j+i]+tempx%10>9) move[j+i+1]=(result[j+i]+move[j+i]+tempx%10)/10; result[j+i]=(result[j+i]+move[j+i]+tempx%10)%10; if(tempx>9) for (k=j+i;tempx>0;k++) { move[k+1]=move[k+1]+tempx/10; tempx=tempx/10; } move[j+i]=0; for(k=99;move[k]==0;k--); //判断进位数组剩下的进位数是否为零 if(k>j) { flag=1; } } } return 0; }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。