【转载】大整数乘法计算
普通的计算器只能计算16位数字,如附件中自带的计算器
截图:
自己写的计算程序

1 #include<iostream>
2 #include<memory>
3 #include<conio.h>
4 using namespace std;
5 int gn=0;//global variable that represents the size
6
7
8
9 int* multi(int* num1, int size1 ,int* num2, int size2)
10 {
11 int size=size1+size2;
12 gn=size-1;
13 int* ret=new int[size+1];
14 memset(ret,0,sizeof(int)*size);
15 int i=0,j=0,k;
16
17 /*----------------------------核心算法-----------------------------*/
18 for(i=0;i<size1;++i)
19 {
20 k=i;
21 for(j=0;j<size2;j++)
22 {
23
24 ret[k++]+=num1[i]*num2[j];
25 }
26 }
27 /*-------------------------------------------------------------------*/
28
29 /*--------------------------判断是否进位-----------------------------*/
30 for (j=size-1;j>0;--j)
31 {
32 if (ret[j]>=10)
33 {
34 ret[j-1]+=ret[j]/10;
35 ret[j]%=10;
36 }
37 }
38
39 /*-------单独判断ret[0]----------*/
40 if (ret[0]>=10)
41 {
42 for (i=size;i>0;--i)
43 ret[i]=ret[i-1];
44 ret[0]=ret[1]/10;
45 ret[1]%=10;
46 gn=size;
47
48
49 }
50 /*----------------------------------------------------------------------*/
51 return ret;
52
53
54
55 }
56
57 void main()
58 {
59 cout<<"by tiredoy"<<endl
60 <<"-------------------------------"<<endl<<endl;
61 int pa[2000],pb[2000];
62 int a=0,b=0,n=0;
63 char ch=getch();
64 /*------------------------------------宁肯麻烦,也不要goto--------------------------------------*/
65 int flag=1;
66 while(flag)
67 {
68 while(ch!=42)
69 {
70 while ( ch>=48&&ch<=57 )
71 {
72 pa[a]=ch-48;
73 cout<<pa[a];
74 ++a;
75 break;
76 }
77 ch=getch();
78 }
79 if (a!=0)
80 {
81 flag=0;
82
83 }
84 else {
85 ch=getch();
86 }
87 continue;
88
89 }
90 flag=1;
91 cout<<endl<<"*"<<endl;
92 while(flag)
93 {
94 while(!(ch==13||ch==61))
95 {
96 while ( ch>=48&&ch<=57 )
97 {
98 pb[b]=ch-48;
99 cout<<pb[b];
100 ++b;
101 break;
102 }
103 ch=getch();
104 }
105 if (b!=0)
106 {
107 flag=0;
108
109 }
110 else {
111 ch=getch();
112 }
113 continue;
114
115 }
116
117 int* ret=multi(pa,a,pb,b);
118
119 cout<<endl<<"="<<endl;
120 for(int i=0;i<gn;++i)
121 cout<<ret[i];
122 cout<<endl;
123
124
125
126
127
128
129 }
作者:太一吾鱼水
文章未经说明均属原创,学习笔记可能有大段的引用,一般会注明参考文献。
欢迎大家留言交流,转载请注明出处。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律