数组乘法(大整数相乘)

数组乘法(大整数相乘)

题目:Power of Cryptography

解法:https://blog.csdn.net/code_pang/article/details/8263971

题目类型:分治(大概吧,也不是很确定)

知识点:pow()函数的底层运算机制(因为这道题居然居然可以用一个函数就AC掉!!??),数字位数的确定,数组相乘法(即两个超大整数的相乘,只能用数组存储),二分查找法(节省时间,毕竟题目给的时间只有1秒!)

 

 

题目:牛课网上的https://www.nowcoder.com/acm/contest/75#question进击吧!阶乘

解法:大数乘法

#include <stdio.h>
#include <iostream>
using namespace std;

// 数组乘法, res_size: 表示有多少位, 返回结果的位数
int multiply(int x, int res[], int res_size) {
    int carry = 0;  // 进位
    for (int i=0; i<res_size; i++) {
        int prod = res[i] * x + carry;   //易错点1:记得加上carry进位值
        res[i] = prod % 10;
        carry  = prod/10;
        printf("carry = %d\n",carry);
    }

    while (carry!=0) {
        res[res_size] = carry%10;
        carry = carry/10;
        res_size++;
    }
    printf("res_size = %d\n",res_size);
    return res_size;
}

void factorial(int n) {
    int res[36000]; // 10000! 位数不超过36000

    // 初始化
    res[0] = 1;         //易错点2:数组的初始化的值应该为1
    int res_size = 1; // 表示有多少位

    // 计算 n!
    for (int x=2; x<=n; x++) {
        res_size = multiply(x, res, res_size);
    }

    for (int i=res_size-1; i>=0; i--) {
        printf("%d", res[i]);
    }
    cout << endl;
}
int main()
{
    ios::sync_with_stdio(false);

    long long N;
    while(cin >> N)
    {
            factorial(N);
    }
    return 0;
}

 

题目知识点:数组乘法

转载于:https://www.cnblogs.com/myxdashuaige/p/9153152.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/101617.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 【项目管理】现网故障处理

    【项目管理】现网故障处理

  • java时间工具类[通俗易懂]

    java时间工具类[通俗易懂]可以直接复制使用/***字符串转换成日期*根据周数,获取开始日期、结束日期*对日期的【秒】进行加/减*对日期的【分钟】进行加/减*对日期的【小时】进行加/减*对日期的【天】进行加/减*对日期的【周】进行加/减*对日期的【月】进行加/减*对日期的【年】进行加/减*判断字符串是否为日期*今天开始和今天结束时间*/importorg.apache.commons.lang.StringUtils;importorg.joda.time

  • 博弈论学习笔记(六)纳什均衡之约会游戏与古诺模型

    博弈论学习笔记(六)纳什均衡之约会游戏与古诺模型可以将纳什均衡看成一种自我实施的协议,假设每个人都相信大家都会遵守协议,那么大家就都会遵守。纳什均衡是和领导力紧密联系的。在协调博弈中,领导力的作用就是促成人们达到某个特定均衡而不是其他均衡。尤其是某些缺乏领导的混乱状态,在这类博弈中领导力的作用举足轻重。–领导力的用武之地。举个简单的例子,如下表,很显然协调能够起到作用。αβα1,10…

    2022年10月15日
  • QQFishing QQ钓鱼站点搭建

    QQFishing QQ钓鱼站点搭建答:为什么要写这个代码?当然不是做黑产去盗别人扣扣,也没有啥查看别人隐私信息的癖好,搭建该站点的适用对象为->使用社会工程学定向钓鱼攻击的安全渗透人员另外管理员界面后端写的很丑+很烂,除了我

  • margin 等高布局

    margin 等高布局

  • centos7安装wget命令_centos7修复系统

    centos7安装wget命令_centos7修复系统yum-yinstallwget假如报错:使用yum命令报错:-bash:/usr/bin/yum:/usr/bin/python:坏的解释器:没有那个文件或目录,参考这篇文章修改相关文件后,再执行上述命令即可。

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号