洛谷:P1601 A+B Problem(高精)模拟与高精度

A*B Problem

题目描述

给出两个非负整数,求它们的乘积。

输入格式

输入共两行,每行一个非负整数。

输出格式

输出一个非负整数表示乘积。

样例 #1

样例输入 #1

1 
2

样例输出 #1

2

提示

每个非负整数不超过 1 0 2000 10^{2000} 102000。

c++ 复制代码
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
const int N = 1e5 + 10;
char s1[N], s2[N];
int s3[N], len;
int main()
{
	cin >> s1 >> s2;
	int len1 = strlen(s1);
	int len2 = strlen(s2);
	int size = max(len1,len2);
	for (int i = 0; i < size; i++)
	{
		int a, b, c;
		if (len1>0)
			a = s1[len1 - 1] - '0';
		else
			a = 0;
		if (len2> 0)
			b = s2[len2 - 1] - '0';
		else
			b = 0;
		c = a + b;
		int d = s3[i];
		s3[i]=(d+c % 10)%10;
		s3[i + 1] = (d + c) / 10;
		len1--;
		len2--;

	}
	int k = max(len1, len2);
	if (s3[size] == 0)size--; //如果首位为0,排除

	for (int i = size; i >= 0; i--)
	{
		cout << s3[i];
	}
}
相关推荐
sjsjs1128 分钟前
【数据结构-堆】力扣1834. 单线程 CPU
数据结构·算法·leetcode
Swift社区1 小时前
LeetCode - #182 Swift 实现找出重复的电子邮件
算法·leetcode·swift
tt5555555555553 小时前
每日一题-单链表排序
数据结构·算法·排序算法
Tisfy3 小时前
LeetCode 3270.求出数字答案:每位分别计算 或 for循环
数学·算法·leetcode·题解·进制
Harryline-lx3 小时前
代码随想录算法训练营Day48 | 图论理论基础、深搜理论基础、98. 所有可达路径、广搜理论基础
算法
do_yo3 小时前
6、原来可以这样理解C语言_函数(1/8)函数的概念
c语言·开发语言·数据结构·c++·算法
涛ing4 小时前
15. C语言 函数指针与回调函数
linux·c语言·开发语言·c++·算法·unix·visual studio
oioihoii4 小时前
C++中线程同步与互斥的4种方式介绍、对比、场景举例
开发语言·c++·算法
伊一大数据&人工智能学习日志4 小时前
SVM支持向量机
算法·机器学习·支持向量机
老猿讲编程4 小时前
C++、Haskell 和 Rust 三种语言实现 Faster Suffix Sort 算法的比较
c++·算法·rust