前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >大数乘大数

大数乘大数

作者头像
Gxjun
发布2018-03-22 12:44:44
6640
发布2018-03-22 12:44:44
举报
文章被收录于专栏:mlml
代码语言:javascript
复制
 1 /*coder @Gxjun*/
 2 #include<stdio.h>
 3 #include<string.h>
 4 #include<stdlib.h>
 5 #define maxn 10000
 6 char rx[16];   /*既然是实数,那么就精确到16位吧*/
 7 int ans[maxn],nx[17],tem[maxn],cc[maxn];
 8 int main( void )
 9 {
10     int n,i,po=0,j,cnt,k;
11     printf("输入n x的值\n");
12     while(~scanf("%d%s",&n,rx))
13     {
14         int pos=strlen(rx)-1,low=0;
15         memset(nx,0,sizeof(nx));
16         po=cnt=0;
17         bool flag=false;   //<判断是否为负数>
18         if(rx[0]=='-'||rx[0]=='+') 
19         {
20             if(rx[0]=='-'&&(n&1))flag=true;
21             low++;
22         }
23         for(i=pos;i>=low;i--)
24         {
25             //小数转化为整数,并记录小数的个数...po;
26             if(rx[i]=='.')   po=pos-i;
27             else  nx[cnt++]=rx[i]-48;   
28         }
29         memset(ans,0,sizeof(ans));
30         memset(tem,0,sizeof(tem));
31         pos=cnt;
32         int len=n*pos,s;
33         po*=n;
34         memcpy(ans,nx,pos*sizeof(nx[0]));
35         while(n-->1)
36         {
37         for(cnt=i=0;i<pos;i++)
38         {
39             for(s=j=0;j<len;j++)
40             {
41                 tem[j]=(ans[j]*nx[i]+s);
42                 s=tem[j]/10;
43                 tem[j]%=10;
44             }
45             /*memcpy(cc,tem,len);*/
46             for(j=cnt,s=k=0 ;j<len;j++,k++)
47             {
48             cc[j]+=(tem[k]+s);
49             s=cc[j]/10;
50             cc[j]%=10;
51             }
52             cnt++;
53             memset(tem,0,sizeof(tem));
54         }
55         memcpy(ans,cc,len*sizeof(cc[0]));
56         memset(cc,0,sizeof(cc));
57     }
58     i=len;
59     while(ans[i]==0&&i>po)i--;
60     if(flag)printf("-");
61      while(i>=0)
62      {
63            printf("%d",ans[i]);
64            if(i==po&&i!=0)printf(".");
65            i--;
66      }
67      putchar(10);
68     }
69     return 0;
70 }
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2014-03-03 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档