Problem E: Product

本文详细介绍了如何使用C++实现两个大数之间的乘法运算,通过字符串存储大数并逐位相乘的方式,解决了传统整型数据溢出的问题。算法适用于超过标准整型变量范围的大数计算。

Problem E: Product
Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 18 Solved: 14
[Submit][Status][Web Board]
Description
The problem is to multiply two integers X, Y. (0<=X,Y<10250)

Input
The input will consist of a set of pairs of lines. Each line in pair contains one multiplyer.

Output
For each input pair of lines the output line should consist one integer the product.

Sample Input
12
12
2
222222222222222222222222
Sample Output
144
444444444444444444444444
my answer:

#include<iostream>
#include<cstring>
#include<string>
using namespace std;
int main()
{
 
    char a[100];
    char b[100];
    memset(a,'0',sizeof(a));
    memset(b,'0',sizeof(b));
    while(cin>>a>>b)
    {
        int sum[101]={0};
        int t1=strlen(a);
        int q=t1;
        int t2=strlen(b);
        for(int i=t2-1;t2>0,i>=0;i--){
            int p=100;
            for(int j=q-1,p=100+i-t2+1;j>=0;t1--){
                sum[p--]+=((a[j--]-'0')*(b[i]-'0'));
                }
        }
        for(int k=100;k>=0;k--){
            sum[k-1]+=sum[k]/10;
            sum[k]=sum[k]%10;
        }
        int start=0;
        while(!sum[start])
            start++;
        for(int j=start;j<=100;j++)
           cout<<sum[j];
        cout<<endl;
    }
    return 0;
}

 

转载于:https://www.cnblogs.com/NYNU-ACM/p/4236894.html

def add_result(self, passfail, item_id, actual_result, expected_result, test_comment, bug_severity="", cf_problemanalysis="", cf_bugimpact=""): """ 收集结果信息,如果用例失败自动提交bug" :param passfail: PASS/FAIL :param item_id: 测试点信息 :param actual_result: 实际运行结果 :param expected_result: 预期运行结果 :param test_comment: 描述信息 :param bug_severity: (optional) bug重要等级 (blocker/critical/major/normal) :param cf_problemanalysis: (optional) bug分析 :param cf_bugimpact: (optional) bug影响 :return: None """ if passfail == self.result.FAIL: self.add_case_step("用例执行失败:预期值:{},实际值:{}".format(expected_result, actual_result)) # 整理bug信息,自动提交bug try: bug_info = { "short_desc": "【" + self.env_region + "】" + self.case_info.id + ";" + item_id + " 执行失败", # bug名称 "cf_casename": self.case_info.id + "__" + self.case_info.name, # 用例名称 "cf_testtop": self.env_region, # 测试环境信息 "cf_accompanydevice": "", "cf_module": "IOT", "cf_reproducesteps": "\r\n".join(self.case_steps), # 测试步骤 "cf_testresult": actual_result, # 实际结果 "cf_expectresult": expected_result, # 预期结果 "cf_problemanalysis": "无", # 结果分析 "cf_bugimpact": item_id + "运行失败", # bug影响 "assigned_to": self.assigned_to, # 指派人 "cc": self.copy_to, # 抄送人 # 日志文件,field_name需要再确认是否正确 "data": self.logger_file } if bug_severity: bug_info["bug_severity"] = bug_severity if cf_problemanalysis: bug_info["cf_problemanalysis"] = cf_problemanalysis if cf_bugimpact: bug_info["cf_bugimpact"] = cf_bugimpact if self.submit_bug_flag and self.get_bug_account() >= self.bug_count: # 需要提交bug时,并且当前bug数大于等于项目当前已有的bug数,运行bug提交流程 add_bug = BUGHandler(self.tester, self.password, self.bug_product_id) bug_id = add_bug.create_bug(bug_info) if bug_id: self.logger.info("bug提交完成:bugid: {}".format(bug_id)) # 保存bug信息 bug_info["data"] = self.logger_file # 保存bug时只留存日志文件路径,注意不要删除bug执行日志 self.store_bug_info(bug_info) except Exception as e: self.logger.error("提交bug异常,请检查:{}".format(e)) else: # 单个测试点通过后,清空测试点步骤 self.case_steps = [] self.result.add_result(passfail=passfail, item_id=item_id, actual_result=actual_result, expected_result=expected_result, test_comment=test_comment) self.passfail.append(passfail) 解释下这段代码
11-11
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值