【C语言】超大数乘法运算
来源:互联网 发布:山东体彩11选5遗漏数据 编辑:程序博客网 时间:2024/05/02 02:54
昨天做排列组合的时候遇到A(a,b)这个问题,需要计算A(20,20)超大,计算机32位的,最大数只能是2^32,这让我很悲伤!
于是乎就自己研究了如何进行超大数的计算!
/********************************************************************************* * Copyright: (C) 2013 Chen ZhenWei<ieczw@qq.com> * All rights reserved. * * Filename: bignum.c * Description: This file * * Version: 1.0.0(12/12/2013~) * Author: Chen ZhenWei <ieczw@qq.com> * ChangeLog: 1, Release initial version on "12/12/2013 08:21:23 AM" * ********************************************************************************/#include <stdio.h>#include <string.h>int save_num(const char *str,unsigned short *num){ int i=0; int length = strlen(str); for(i=0; i<length/2; i++) { // printf("%c == %c\n",str[length-1-i*2],str[length-2-i*2]); num[i] = (str[length-1-i*2]-'0')+10*(str[length-2-i*2]-'0'); } if(length%2 != 0) { num[i] = str[0] - '0'; return i+1; } return i;}void main(){ unsigned short numa[100]; unsigned short numb[100]; unsigned short result[200]; unsigned short carry; int i=0,j=0,lena,lenb,res_len; char strnum[64]; char flag; scanf("%s",strnum); lena = save_num(strnum,numa); //scanf("%c",&flag); scanf("%s",strnum); lenb = save_num(strnum,numb); memset(result,0x0,200*2); for(i=0; i<lena; i++) for(j=0; j<lenb; j++) { carry = numa[j] * numb[i]; result[j+i] += carry%100; result[j+i+1] += carry/100; } res_len = j+i+1; for(i=0; i<res_len; i++) { if(result[i]>=100) { result[i+1] += result[i]/100; result[i] = result[i]%100; } } for(i=res_len; i>0; i--) { printf("%02d",result[i-1]); } printf("\n");}
设计思路:
操作结果:
2 0
- 【C语言】超大数乘法运算
- 超大整数乘法运算——C语言
- C语言超大数相加
- 超大数乘法程序
- 超大数乘法程序
- C语言超大数除法,支持小数
- C 语言 超大数相加和求余
- <C语言超大数求和>实现思路及源码
- 关于C语言实现高精度乘法运算
- 2个超大数的加法运算
- C语言---超大文本文件排序
- 一元多项式的乘法运算(C语言)实现
- C语言中如何实现对超大数据的存取与运算
- C语言中浮点数的运算
- 任意数乘法(支持超大数超长数,支持超精度浮点数)
- 大数乘法 C语言
- C语言 高精度乘法
- C语言大数乘法
- Ubuntu下安装GTK
- WebLogic安装
- ORA-22858: 数据类型的变更无效 varchar2类型转换为clob类型
- Core Data 自动生成及基本数据操作(1)
- Unity3D开发之计算向量角度的方式
- 【C语言】超大数乘法运算
- Core Data 自动生成及基本数据操作(2)
- extern C的作用详解
- linux文件权限目录说明
- 关于读取指定文件夹下批图片的问题
- Core Data 自动生成及基本数据操作(3)
- 卡内基梅陇大学的计算机在读博士讲述如何在保证睡眠的情况把各种事情做好
- pgsql
- nginx的配置