大整数数相乘的问题
编辑: 面试啦 发布时间: 2023-06-15 09:02:33
void Multiple(char A[], char B[], char C[]) {
int TMP, In=0, LenA=-1, LenB=-1;
while(A[++LenA] != ‘\0′);
while(B[++LenB] != ‘\0′);
int Index, Start = LenA + LenB – 1;
for(int i=LenB-1; i>=0; i–) {
Index = Start–;
if(B[i] != ’0′) {
for(int In=0, j=LenA-1; j>=0; j–) {
TMP = (C[Index]-’0′) + (A[j]-’0′) * (B[i] – ’0′) + In;
C[Index--] = TMP % 10 + ’0′;
In = TMP / 10;
}
C[Index] = In + ’0′;
}
}
}
int main(int argc, char* argv[]) {
char A[] = “21839244444444448880088888889″;
char B[] = “38888888888899999999999999988″;
char C[sizeof(A) + sizeof(B) - 1];
for(int k=0; k
C[k] = ’0′;
C[sizeof(C)-1] = ‘\0′;
Multiple(A, B, C);
for(int i=0; C[i] != ‘\0′; i++)
printf(“%c”, C[i]);
}
int TMP, In=0, LenA=-1, LenB=-1;
while(A[++LenA] != ‘\0′);
while(B[++LenB] != ‘\0′);
int Index, Start = LenA + LenB – 1;
for(int i=LenB-1; i>=0; i–) {
Index = Start–;
if(B[i] != ’0′) {
for(int In=0, j=LenA-1; j>=0; j–) {
TMP = (C[Index]-’0′) + (A[j]-’0′) * (B[i] – ’0′) + In;
C[Index--] = TMP % 10 + ’0′;
In = TMP / 10;
}
C[Index] = In + ’0′;
}
}
}
int main(int argc, char* argv[]) {
char A[] = “21839244444444448880088888889″;
char B[] = “38888888888899999999999999988″;
char C[sizeof(A) + sizeof(B) - 1];
for(int k=0; k
C[sizeof(C)-1] = ‘\0′;
Multiple(A, B, C);
for(int i=0; C[i] != ‘\0′; i++)
printf(“%c”, C[i]);
}
词条:c面试题
面试题库导航
- C++面试题
- JAVA面试题
- Oracle面试题
- MySQL面试题
- Linux面试题
- 网络工程师面试题
- 网管面试题
- 软件工程师面试题
- PHP面试题
- .net面试题
- 软件测试面试题
- EJB面试题
- Spring面试题
- Javascript面试题
- Python面试题
- QTP面试题
- Servlet面试题
- J2EE面试题
- Database面试题
- ASP面试题
- Unix面试题
- Loadrunner面试题
- 通信面试题
- 嵌入式面试题
- Ruby面试题
- Delphi面试题
- Mobile开发面试题
- SOA面试题
- JAVA面试题面试题
- 研发工程师面试题
- 软件架构师面试题
- 系统工程师面试题
- Android面试题
- JAVA程序员
- C#面试题