1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | #include<stdio.h> #include<string.h> #define N 10000 int main() { char shu[N],shu1[N]; int a,b,c,q=0,p=0,m[N],n[N],sum[100000],i,j,h,l; scanf( "%s %s" ,&shu,&shu1); a=strlen(shu); b=strlen(shu1); for (q=1,c=a-1;q<=a;q++,c--) { m[q]=shu[c]- '0' ; //转换数组中的数个位从1开始 } for (p=1,c=b-1;p<=b;p++,c--) { n[p]=shu1[c]- '0' ; } for (i=1;i<=a;i++) for (j=1,l=i-1;j<=b;j++) { sum[++l]+=m[i]*n[j]; //这里是推倒出来的规律,记住呗 } for (c=1;c<=l;c++) { if (sum[c]>=10) { if (sum[l]>=10) { h=sum[c]/10; sum[c+1]+=h; sum[c]=sum[c]%10; l++; } else { h=sum[c]/10; sum[c+1]+=h; sum[c]=sum[c]%10; } } } for (c=l;c>=1;c--) { printf( "%d" ,sum[c]); } return 0; } |
注释:高精度的大体框架,方法可以应用到题里面。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步