C++培训教材

高精乘法
-----------------------------------------------------------------------
先写个两个数的乘积 有空改成个多个数的积
-----------------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
int i, j, k;
char a1[50], a2[50];
int s1[50], s2[50];
int s[100];
void mul(int *s1, int *s2, int *s) {
    for (i=0; i<strlen(a1); i++)
        for (j=0; j<strlen(a2); j++)
            s[i+j]+=s1[i]*s2[j];
    int k=100;
    while (!s[k])
        --k;
    for (i=0,j=0; i<=k; i++) {
        s[i+1]+=s[i]/10;
        s[i]%=10;
    }
}
int main() {

gets(a1);
gets(a2);  int m=strlen(a1)+strlen(a2);
for (i=strlen(a1)-1; i>=0; --i)
s1[i]=(a1[strlen(a1)-i-1]-'0');
for (i=strlen(a2)-1; i>=0; --i)
s2[i]=(a2[strlen(a2)-i-1]-'0');
for (i=0; i<100; i++)
s[i]=0;
mul(s1, s2, s);
for (i=m-1; i>=0; --i)//
printf("%d", s[i]); system("pause");
}
---------------------------------------------
1010101010101010101
1010101010101010101
输出1020304050607080910090807060504030201
----------------------------------------------
-----------------------------------------------
输入任意整数!!!!!!!!!辛苦修改 !!!!!!
#include <stdio.h>
#include <stdlib.h>
int i, j, k;
char a1[100], a2[100];
int s1[1000], s2[100];
int s[1000];
int temp=1;
int main() {
    gets(a1);
    for (i=strlen(a1)-1; i>=0; --i)
        s1[i]=(a1[strlen(a1)-i-1]-'0');
//上面的  是取得s1 然后转为int 数组    
    int m=strlen(a1);//提前算出a1 长度

while (gets(a2), strcmp(a2, "~")) {  //遇到~结束
        for (i=strlen(a2)-1; i>=0; --i)
            s2[i]=(a2[strlen(a2)-i-1]-'0');

for (i=0; i<100; i++)
            s[i]=0;///s  初始化 开始计算了

for (i=0; i<m; i++)
            for (j=0; j<strlen(a2); j++)
                s[i+j]+=s1[i]*s2[j];//开始计算了  结果保存到 s中

int k=1000;
        while (!s[k])
            --k;   
        // 算出s中的有效位数  
        m=m+strlen(a2);
        for (i=0; i<=k; i++) {
            s[i+1]+=s[i]/10;
            s[i]%=10;
        }

for (i=0; i<m; ++i)
            s1[i]=s[i];
     // temp++;  两个数乘前面多两个个零   三个数乘后面多三个零 不知道为什么  只能放个temp在这里  使后面少输出temp位  
    }
    for (i=m; i>=0; --i)  //这里改成i=m-temp 就可以少输出前面的temp位   但是发现最前面如果要进位的话就会被去掉了  无奈。。。。。  
        printf("%d", s1[i]);
}
改起来麻烦 所以就没用函数  有点美中不足 前面的零不好去掉!。。。 输入两个数前面两个零 输入三个数 前面多三个零  
--------------------------------------------------------------------
999999999999999
999999999999999
999999999999999
999999999999999
~
输出 0999999999999996000000000000005999999999999996000000000000001

转载于:https://www.cnblogs.com/JAVA-itjob/archive/2011/12/16/2290265.html

大数高精运算-----乘法相关推荐

  1. 大数高精加减乘除(洛谷P1601、P2142、P1303、P1480题题解,Java语言描述)

    写在前面 算法归算法,有现成的API能用为什么不用? (纯算法党别喷我,以后我再写高精算法的文) P1601 → A+B Problem 题目要求 P1601题目链接 AC代码(Java语言描述) i ...

  2. 高精四则运算及求模运算(五)

    高精四则运算及求模运算之高精度求模 题目描述 Tenshi非常幸运地被选为掌管智慧之匙的天使.在正式任职之前,她必须和其他新当选的天使一样要宣誓. 宣誓仪式是每位天使各自表述自己的使命,他们的发言稿放 ...

  3. 智能网联汽车高精地图白皮书(2020)

    1. 前言 高精地图的发展与智慧交通.智能网联汽车紧密相关,从智能网联汽车上路伊始,高精地图产业就应势而生并飞速发展.相对于以往的导航地图,高精地图是智能网联汽车交通的共性基础技术,其服务的对象并非仅 ...

  4. a+b问题(不高精and高精)

    a+b问题(无高精): 输入两个整数a,b,输出它们的和(|a|,|b|<=10^9). 注意 pascal使用integer会爆掉哦! 有负数哦! c/c++的main函数必须是int类型,而 ...

  5. 【区间DP+高精】codevs1166 矩阵取数游戏题解

    转自: [ametake版权所有]http://blog.csdn.net/ametake欢迎来看 http://blog.csdn.net/ametake/article/details/47664 ...

  6. 【日常学习】【区间DP+高精】codevs1166 矩阵取数游戏题解

    题目来自NOIP2007TG3 如果在考场上我现在已经歇菜了吧 今天一整天的时间全部投在这道题上,收获不小. 先上题目 题目描述 Description [问题描述] 帅帅经常跟同学玩一个矩阵取数游戏 ...

  7. 高精地图中导航标识识别

    高精地图中导航标识识别 思路 主要介绍高精地图导航标识识别上的技术演进,这些技术手段在不同时期服务了高精地图产线需求. 高精地图介绍 当你开车导航的时候,导航地图会向我们推荐一条或几条路线,有些地图甚 ...

  8. 【题解】洛谷P1066 [NOIP2006TG] 2^k进制数(复杂高精+组合推导)

    洛谷P1066:https://www.luogu.org/problemnew/show/P1066 思路 挺难的一道题 也很复杂 满足题目要求的种数是两类组合数之和 r的最多位数m为 w/k(当w ...

  9. [CQOI]九连环(FFT优化+高精)

    文章目录 题目 题解 code 题目 九连环是一种源于中国的传统智力游戏. 如图所示,九个的圆环套在一把"剑"上,并且互相牵连.游戏的目标是把九个圆环全部从"剑" ...

最新文章

  1. ​从800个GPU训练几十天到单个GPU几小时,看神经架构搜索如何进化
  2. MPB:浙大王佳堃组-​幼龄反刍动物粪便DNA提取及注意事项
  3. django中html中图片路径怎么写,django css样式,图片路径问题解决方案
  4. 数据中心能耗结构、PUE、WUE
  5. 1009 Product of Polynomials (25 分)【难度: 简单 / 知识点: 模拟】
  6. 什么是功能性需求和非功能性需求
  7. 重构-改善既有代码的设计(十)--简化函数调用
  8. WEB安全基础-HTML相关知识
  9. 公司团建还真是一门智慧
  10. Vmware workstation 安装解压 vmwaretools 提示只读文件
  11. IAR模板--怎样在IARproject中创建和使用模板
  12. 【洛谷习题】售货员的难题
  13. 单面打印机双面打印———python pdf拆分重排
  14. 二元关系的矩阵和图表示
  15. 关于T检验的各种问题
  16. 【代理知识】绝对值得珍藏!(转)
  17. 爬取豆瓣电影Top250影片信息
  18. 人脸检测的测试程序(视频和摄像头)
  19. Dubbo实战(一)快速入门
  20. ZIP压缩算法详细分析及解压实例

热门文章

  1. ./dmitry -p ip或者域名 -f -b
  2. Linux上安装JDK+Tomcat
  3. 运动目标检测、阴影检测及目标跟踪中用得到的标准测试视频下载(大量IBM提供视频)...
  4. jQuery源码解析之position()
  5. Java类加载机制总结
  6. Linux的权限管理 1
  7. “共享工程师”?看锐捷“网络青年”如何携手500位工程师提供最优IT服务
  8. SVN服务器的搭建,它不是最全面的却是最详细易懂的~
  9. shell脚本采用crontab定时备份数据库日志
  10. c# 获取方法所在的命名空间 类名 方法名