C语言大数相乘的问题

2023-10-27

给你两个整数,请你计算A × B。
输入


数据的第一行是整数T(1 ≤ T ≤ 20),代表测试数据的组数。
接着有T组数据,每组数据只有一行,包括两个非负整数A和B。
但A和B非常大,Redraiment能保证这些数用long来保存一定会溢出。
但A和B的位数最大不会超过100位。


输出


对应每组测试数据,你都要输出两行:
第一行为:"Case #:", # 代表这是第几组测试数据。
第二行是一个等式:"A * B = Sum", Sum 代表 A × B 的结果。
你要注意这个等式里包含了几个空格。
要求每组数据之间都需要保留一个空行。


样例输入


2
1 2
123456789 987654321


样例输出


Case 1:
1 * 2 = 2


Case 2:
123456789 * 987654321 = 121932631112635269


 很显然对于100位的数据我们无法定义他的类型,因此只能用数组一位一位计算,然后输出结果,但应注意要把字符转换成数字,同样运算时千万要注意0的运算





#include<stdio.h>
#include<string.h>
#define MAX 10005
int main()
{
    int n,i,j,t,s;
    char a[102],b[102],temp[105]={0},sum[MAX]={0};
    int lena,lenb,flag;
    scanf("%d",&n);
    while(n--)
    {
     flag=0;
     scanf("%s%s",a,b);
     lena=strlen(a);
     lenb=strlen(b);
     for(j=lenb-1;j>=0;j--)
        {
          for(t=lena,i=lena-1;i>=0;i--,t--)
            {
              temp[t]=(a[i]-0x30)*(b[j]-0x30);
             }
            for(t=lena;t>=1;t--)
            {
                if(temp[t]>9)
                {
                 temp[t-1]+=temp[t]/10;
                 temp[t]%=10;
                }
            }
            for(s=lena+lenb-flag,t=lena;t>=0;t--,s--)
                sum[s]+=temp[t];
            for(t=lena;t>=0;t--)
                temp[t]=0;
            for(s=lena+lenb;s>=1;s--)
            {
                if(sum[s]>9)
                {
                 sum[s-1]+=sum[s]/10;
                 sum[s]%=10;
                }
            }
            flag++;
        }
        sum[lena+lenb+1]='\0';
        for(s=0;s<=lena+lenb;s++)
                sum[s]=sum[s]+0x30;
        for(s=0;s<lena+lenb;s++)
            if(sum[0]==0x30)
            {
                for(t=0;t<=lena+lenb-s;t++)
                sum[t]=sum[t+1];
             }
             else break;
        printf("Case %d:\n",m);
        printf("%s * %s = %s\n",a,b,sum);
        if(n!=0)
            printf("/n");
            for(s=lena+lenb+1;s>=0;s--)
            sum[s]=0;
       }
    return 0;


问题还可以扩展成大数相减,相加,阶乘问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C语言大数相乘的问题 的相关文章

  • 如何获取正在访问 ASP.NET 应用程序的当前用户?

    为了获取系统中当前登录的用户 我使用以下代码 string opl System Security Principal WindowsIdentity GetCurrent Name ToString 我正在开发一个 ASP NET 应用程
  • WCF RIA 服务 - 加载多个实体

    我正在寻找一种模式来解决以下问题 我认为这很常见 我正在使用 WCF RIA 服务在初始加载时将多个实体返回给客户端 我希望两个实体异步加载 以免锁定 UI 并且我想利用 RIA 服务来执行此操作 我的解决方案如下 似乎有效 这种方法会遇到
  • 动态加载程序集的应用程序配置

    我正在尝试将模块动态加载到我的应用程序中 但我想为每个模块指定单独的 app config 文件 假设我的主应用程序有以下 app config 设置
  • 在哪里可以找到列出 SSE 内在函数操作的官方参考资料?

    是否有官方参考列出了 GCC 的 SSE 内部函数的操作 即 头文件中的函数 除了 Intel 的 vol 2 PDF 手册外 还有一个在线内在指南 https www intel com content www us en docs in
  • ASP.NET MVC:这个业务逻辑应该放在哪里?

    我正在开发我的第一个真正的 MVC 应用程序 并尝试遵循一般的 OOP 最佳实践 我正在将控制器中的一些简单业务逻辑重构到我的域模型中 我最近一直在阅读一些内容 很明显我应该将逻辑放在域模型实体类中的某个位置 以避免出现 贫血域模型 反模式
  • 为什么当实例化新的游戏对象时,它没有向它们添加标签? [复制]

    这个问题在这里已经有答案了 using System Collections using System Collections Generic using UnityEngine public class Test MonoBehaviou
  • 嵌套接口:将 IDictionary> 转换为 IDictionary>?

    我认为投射一个相当简单IDictionary
  • 用于登录 .NET 的堆栈跟踪

    我编写了一个 logger exceptionfactory 模块 它使用 System Diagnostics StackTrace 从调用方法及其声明类型中获取属性 但我注意到 如果我在 Visual Studio 之外以发布模式运行代
  • HTTPWebResponse 响应字符串被截断

    应用程序正在与 REST 服务通信 Fiddler 显示作为 Apps 响应传入的完整良好 XML 响应 该应用程序位于法属波利尼西亚 在新西兰也有一个相同的副本 因此主要嫌疑人似乎在编码 但我们已经检查过 但空手而归 查看流读取器的输出字
  • 堆栈溢出:堆栈空间中重复的临时分配?

    struct MemBlock char mem 1024 MemBlock operator const MemBlock b const return MemBlock global void foo int step 0 if ste
  • 将 VSIX 功能添加到 C# 类库

    我有一个现有的单文件生成器 位于 C 类库中 如何将 VSIX 项目级功能添加到此项目 最终目标是编译我的类库项目并获得 VSIX 我实际上是在回答我自己的问题 这与Visual Studio 2017 中的单文件生成器更改 https s
  • 创建链表而不将节点声明为指针

    我已经在谷歌和一些教科书上搜索了很长一段时间 我似乎无法理解为什么在构建链表时 节点需要是指针 例如 如果我有一个节点定义为 typedef struct Node int value struct Node next Node 为什么为了
  • while 循环中的 scanf

    在这段代码中 scanf只工作一次 我究竟做错了什么 include
  • 如何在 C 中调用采用匿名结构的函数?

    如何在 C 中调用采用匿名结构的函数 比如这个函数 void func struct int x p printf i n p x 当提供原型的函数声明在范围内时 调用该函数的参数必须具有与原型中声明的类型兼容的类型 其中 兼容 具有标准定
  • 使用 x509 证书签署 json 文档或字符串

    如何使用 x509 证书签署 json 文档或字符串 public static void fund string filePath C Users VIKAS Desktop Data xml Read the file XmlDocum
  • 对现有视频添加水印

    我正在寻找一种用 C 在视频上加水印的方法 就像在上面写文字一样 图片或文字标签 我该怎么做 谢谢 您可以使用 Nreco 视频转换器 代码看起来像 NReco VideoConverter FFMpegConverter wrap new
  • cmake 将标头包含到每个源文件中

    其实我有一个简单的问题 但找不到答案 也许你可以给我指一个副本 所以 问题是 是否可以告诉 cmake 指示编译器在每个源文件的开头自动包含一些头文件 这样就不需要放置 include foo h 了 谢谢 CMake 没有针对此特定用例的
  • 如何将带有 IP 地址的连接字符串放入 web.config 文件中?

    我们当前在 web config 文件中使用以下连接字符串 add name DBConnectionString connectionString Data Source ourServer Initial Catalog ourDB P
  • C# 模拟VolumeMute按下

    我得到以下代码来模拟音量静音按键 DllImport coredll dll SetLastError true static extern void keybd event byte bVk byte bScan int dwFlags
  • C++ 标准是否指定了编译器的 STL 实现细节?

    在写答案时this https stackoverflow com questions 30909296 can you put a pimpl class inside a vector我遇到了一个有趣的情况 这个问题演示了这样一种情况

随机推荐

  • Go语言中的函数字面量与匿名函数

    写在前面 习惯性的在写内容前说点儿什么 个人感觉Go语言中的函数字面量这个东西用着不是很顺手 所以想着总结一下 今天先从简单的开始 持续更新 给出概念 命名函数的作用范围是包级别的 这个大家都知道 如果想在程序的任意表达式中使用一个变量来表
  • 小谈移动端加密

    加密方式大致分为以下几种 哈希 散列函数 MD5 SHA1 SHA256 512 对称加密算法 DES 3DES AES 高级密码标准 美国国家安全局使用的加密算法 非对称加密算法 RSA 很多项目中都用到了MD5 它是一种不可逆算法 相同
  • 【数据结构初阶】单链表OJ题

    博客主页 CS semi主页 欢迎关注 点赞收藏 留言 系列专栏 数据结构初阶 代码仓库 Data Structure 家人们更新不易 你们的点赞和关注对我而言十分重要 友友们麻烦多多点赞 关注 你们的支持是我创作最大的动力 欢迎友友们私信
  • 透视投影(Perspective Projection)变换推导

    透视投影是3D固定流水线的重要组成部分 是将相机空间中的点从视锥体 frustum 变换到规则观察体 Canonical View Volume 中 待裁剪完毕后进行透视除法的行为 在算法中它是通过透视矩阵乘法和透视除法两步完成的 透视投影
  • 华为OD机试C++ 支持优先级的队列

    题目 你得构造一个特别的队列 其中元素有优先级 越高的优先级越先出队 如果两个元素数据相同 优先级也相同 那么就扔掉后来的那个 输入 一串数字组合 每个组合包括一个整数和它的优先级 输出 队列里面的整数 按优先级和入队时间排序 你只要处理合
  • 普通遍历查找和二分法查找的两种实现(循环、递归)

    以下代码使用java语言编写 但是思想各语言通用 普通遍历查找 普通遍历查找 public static int search int arr int target for int i 0 i lt arr length i if arr
  • Java之CMS GC的7个阶段

    CMS收集器的主要设计目标是 低应用停顿时间 它通过两种方式实现这一目标 不压缩老年代 而是使用空闲列表来管理回收空间 大部分标记清理工作与应用程序并发执行 主要问题 由于不压缩带来的老年代堆碎片 或者在对象分配率高的情况下 都可能导致Fu
  • shell环境变量以及set,env,export的区别

    一 shell环境变量的分类以及set env export的区别 set 显示 设置 shell变量 包括的私有变量以及用户变量 不同类的shell有不同的私有变量 bash ksh csh每中shell私有变量都不一样 env 显示 设
  • 锋利的jQuery(二)--选择器

    选择器是jQuery的根基 在jQuery中 对事件处理 遍历DOM和Ajax操作都依赖于选择器 2 1 jQuery选择器是什么1 CSS选择器 CSS是一项出色的技术 它使得网页的结构和表现样式完全分离 利用CSS选择器能轻松地对某个元
  • CSS hover 不生效的原因

    遇到hover不生效的情况可以检查以下方面 1 代码中类名是否写正确 这是最基础的情况 有时候会因为粗心或者代码量过多导致敲错类名或者引用错误类名 2 检查hover控制的层级关系是否正确 通常来讲如果直接通过 hover 类名的方式来控制
  • 关于EMMC和SD卡-设备驱动(1)

    eMMC和SD卡都是将闪存控制器和NAND Flash封装在一起 只是接口不同 eMMC一般是BGA封装 焊接在PCB上 SD卡单独封装 使用SDIO接口通讯 origin http blog csdn net Do or Die arti
  • 线程面试题之一:父子线程的同步

    子线程循环 10 次 接着主线程循环 100 次 接着又回到子线程循环 10 次 接着再回到主线程又循环 100 次 如此循环50次 试写出代码 注 在写本篇学习笔记时 本人学习和参考了网络文章 并做了借鉴 感谢各位前辈的分享 如果本文对您
  • ROS架构(一)——ROS架构设计

    ROS架构 一 ROS架构设计 目录 1 OS层 2 中间层 3 应用层 ROS架构 可以将其分为三个层次 OS层 中间层和应用层 1 OS层 众所周知 ROS并不是一个传统意义的操作系统 不能像Windows Linux那样直接运行在计算
  • 技术岗面试常见问题(更新中)

    这篇总结会不断更新 内容大致包括几方面 数据库 C C HTML 操作系统 计算机网络 文中题目转载汇集自各论坛大佬的总结和详解 目录 数据库 1 事务四大特性 2 事务并发带来的问题 3 事务的隔离级别 4 常见系统的默认隔离级别 5 聚
  • Prometheus 监控 Java 应用

    Prometheus 监控 Java 应用 Prometheus 监控 Java 应用有两种方式 一种是使用官方提供的jar包 然后嵌入到应用中 这种方式一般都是新项目 我认为也是最合适的一种 不过这种情况一般是理想而已 而除了这种方式 第
  • locale的设定及其LANG、LC_ALL、LANGUAGE环境变量的区别

    例如zh CN GB2312 zh CN GB18030或者zh CN UTF 8 很多人都不明白这些古里古怪的表达方式 这个外星表达式规定了什么东西呢 这个问题稍后详述 现在只需要知道 这是locale的表达方式就可以了 locale这个
  • 总结Android开源项目及库

    http www ctolib com topics 105990 html ref myread TimLiu Android 自己总结的Android开源项目及库 github排名 https github com trending g
  • 企业网络故障分析及其解决方法介绍

    小型企业网故障分析及其解决方法介绍 小型企业网故障分析及其解决方法介绍 网络管理 网络拥塞和速度下降 无论是由硬件引起的 还是由粗心大意的用户 或是病毒 间谍软件或是其它因素引起的 是令网络管理员和技术支持人员十分头痛的问题 本文将分析引起
  • Golang标准库限流器rate使用

    限流就是限制系统的输入和输出流量来达到保护系统的目的 限流在实际场景中应用十分广泛 尤其在高并发场景下 为了保证系统的可以用性 我们需要采取一些限流措施降级 一旦达到限制的阈值 就需要限制流量并采取一些措施来完成限制流量的目的 比如 延迟处
  • C语言大数相乘的问题

    给你两个整数 请你计算A B 输入 数据的第一行是整数T 1 T 20 代表测试数据的组数 接着有T组数据 每组数据只有一行 包括两个非负整数A和B 但A和B非常大 Redraiment能保证这些数用long来保存一定会溢出 但A和B的位数