大数据的乘法实现——C语言

1大数据乘法的算法思路:

    输入两个字符串,得到结果,例如:123456789*123456789;

    思路:1)首先

          123456789*1 = 9   18  27  36  45  54  63  72  81

                 123456789*2 = 9   18  27  36  45  54  63  72  81

                             123456789*3 = 9   18  27  36  45  54  63  72  81

                                            123456789*4 = 9   18  27  36  45  54  63  72  81

                                                                       123456789*5 = 9   18  27  36  45  54  63  72  81

                                                                                                    123456789*6 = 9   18  27  36  45  54  63  72  81

         

        依次相乘相加;

       2)再进位;

#define  _CRT_SECURE_NO_WARNINGS

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void big_data_multi (char *pstr1, char *pstr2)
{
    int length_str1 = strlen(pstr1);
    int length_str2 = strlen(pstr2);
    int *pstr3 = (int*)malloc(sizeof(int)*(length_str1+length_str2));
    memset(pstr3, 0, sizeof(int)*(length_str1+length_str2));//一定要初始化,否则乱码
    for(int i = 0; i < length_str2; i++)//循环累乘相加
    {
        for(int  j = 0;  j < length_str1; j++)
        {
            pstr3[i + j + 1] += (pstr1[j] - ‘0‘) * (pstr2[i] - ‘0‘);
        }
    }
    for (int i = length_str1 + length_str2 - 1; i >= 0; i--)
    {
        if(pstr3[i] >= 10)
        {
            pstr3[i - 1] += pstr3[i] / 10;
            pstr3[i] = pstr3[i]%10;
        }
    }
    int i = 0;
    while (pstr3[i] == 0)
    {
        i++;
    }
    char *pstr4 = (char*)malloc(sizeof(char)*(length_str1 + length_str2 + 1));
    int j = 0;
    for(; j < length_str1+length_str2 && i < length_str1+length_str2; j++,i++)
    {
        pstr4[j] = pstr3[i] + ‘0‘;
    }
    pstr4[j] = ‘\0‘;
    printf("相乘的结果是:%s\n",pstr4);

}

int main()
{
    char str1[100] = {0},str2[100] = {0};
    while(1)
    {
        gets(str1);
        printf ("str1 = %s\n",str1);
        gets(str2);
        printf ("str2 = %s\n",str2);
        big_data_multi (str1, str2);
    }

    system("pause");
}
时间: 2024-08-25 05:37:41

大数据的乘法实现——C语言的相关文章

java中不用BigInteger实现大数据的乘法操作

昨天看到一个题目:计算1234!,不能用BigInteger类 众所周知阶乘的数据会很大,常用的int和long型根本不够用.一般想到的只有BigInteger类,但是题目中明确说了不能用,所以只能想其它办法. 阶乘其实就是乘法的递归,这道题目可以简化为如何实现大数据的乘法,int和long型都装不下的数据,只能用String来表示,所以只要实现了两个String表示数字的乘法就可实现题目要求. 想想我们自己手算乘法的步骤,基本都是列一个竖式,分别按位相乘,进位的数相加..只要用程序将这个过程模

大数据分析学习之使用R语言实战机器学习视频课程

大数据分析学习之使用R语言实战机器学习网盘地址:https://pan.baidu.com/s/1Yi9H6s8Eypg_jJJlQmdFSg 密码:0jz3备用地址(腾讯微云):https://share.weiyun.com/5tk6j1Z 密码:rdia9t 机器学习的核心主要侧重于找出复杂数据的意义.这是一个应用广泛的任务,机器学习的使用是非常广泛的. 本课程主要分为两个阶段,第一个部分:掌握R语言的处理数据的基本语法.第二部分:介绍机器学习原理,并通过大量的案例,为学员介绍R语言通过机

大数据的乘法

//大数据相乘,具体的算法思想见c #define _CRT_SECURE_NO_WARNINGS //vs2013去掉安全检查 #include <stdlib.h> #include <string.h> #include <iostream> using namespace std; class big_data { public: void init_string() { cout << "str1 = "; cin >&g

大数据修炼之路

大数据修炼之路 大数据Spark是用Scala语言编写架构,因此,认真学习Scala是首选.Scala 是一种面向对象编程和函数式编程的多范式编程语言,和java有些不同又比java强大.下载了<Programming in Scala>,慢慢啃,虽然原汁原味,但是毕竟英文理解能力有限,有些非常专业的特性讲解还是一知半解,领悟不到要点,要参考中文版,这样啃一段又返回去看对应中文版加深理解,但是进度非常慢,甚是苦恼,有幸在51CTO上看到了王家林全免费的<Scala深入浅出实战初级入门经典

从菜鸟走向大数据高手之路

Spark大数据框架是用scala语言编写,和java有些不同又比java强大.灵活,库的封装实现了很多算法函数,scala中的的接口用trait来定义,不同于java的接口,trait中可以有抽象方法也可以有不抽象方法.scala中的方法中还可以定义方法,这在java中是从来没有的.传统的MR需要编写很多JAVA代码实现的算法逻辑,在Spark编写时小菜一碟,几行就实现了这些逻辑,而且让开发人员更多的关注业务方向. 大数据未来几年发展的重点方向,大数据战略已经在十八届五中全会上作为重点战略方向

大数据,只看这个就够了

2016年5月25日上午,由贵州省政府举办的以"大数据开启智能时代"为主题的中国大数据产业峰会在贵阳开幕,国务院总理李克强发表主旨演讲.腾讯集团马化腾,高通公司总裁Derek Aberle,百度公司李彦宏,微软全球陆奇,京东集团刘强东,阿里巴巴王坚,滴滴出行程维,HTC王雪红,戴尔Michael Dell等重要嘉宾出席会议并发言.至此,大数据发展已经上升到国家战略层次,其热度可见一斑.如图一为李克强总理发表讲话: 图一 自2016年起,大数据与人工智能,虚拟现实相继重新进入了我们的视线

TIOBE 2014年11月编程语言排行榜:R受大数据影响跃至12位

TIOBE发布了11月份编程语言排行榜,前三甲依然为C.Java.Objective-C.受大数据影响,本月R语言上升至12位,上个月排名第15位,看其走势下个月有望进前十. 得益于大数据炒作,还有些语言包括Julia (#126), LabView (#63),Mathematica (#80), MATLAB (#24),S (#84),SAS (#21),SPSS (#104) 以及 Stata (#110)份额均有所上升. 编程语言排行榜TOP 20榜单: 前10名编程语言长期走势图: 

大数据企业架构师精品课程(大数据篇)

视频课程包含: 大数据企业架构师精品课程(大数据篇)包含01.hadoop100集全.02.大数据_HBase视频教程.03.大数据_Hive视频教程.04.大数据_Spark_视频教程.05.大数据_zookeeper视频教程.06.R语言速成实战.07.python等等! 2017最火的可能就数大数据了,这里给大家按照一定思路整理了全套大数据视频教程,涵盖大数据全部知识点. 本视频属于作者原创搜集整理!下载方式:翻阅到文章底部 总目录 01.hadoop100集全 02.大数据_HBase视

学编程,学java还是大数据、android?平均月薪23k以上告诉你方向

学编程,学java还是大数据.android?有不少同学在纠结中,最近有不少初学者来问到,学习大数据,学习spark,公司主要使用那些语言编写,每听到这一个问题,起码还是很不错的,证明你已经开始学习大数据了,并了解大数据Spark是可以使用多种语言来实现开发的,那就是Java.Scala.Python和R语言都可以使用,但R语言本人不常用. 学编程,学java还是大数据.android?平均月薪23k以上告诉你方向正常来讲学习大数据之前都要做到以下几点: 1.学习基础的编程语言(java,pyt