首页 > 编程语言 >研0 冲刺算法竞赛 day8 P1303 A*B Problem

研0 冲刺算法竞赛 day8 P1303 A*B Problem

时间:2024-07-01 18:57:05浏览次数:21  
标签:10001 day8 int len a1 b1 P1303 Problem strlen

思路:用char[]存储输入,后用int[]逐位计算,根据乘法计算规则错位相加,用数组存储,然后考虑进位,最后倒序输出

代码:

#include<iostream>
#include<cstring>
using namespace std;

char a1[10001], b1[10001];
int a[10001],b[10001],c[10001];

int main()
{
	cin >> a1 >> b1;
	for (int i = 0; i < strlen(a1); i++)
	{
		a[i] = a1[strlen(a1)-i-1] - '0';
	}
	for (int i = 0; i < strlen(b1); i++)
	{
		b[i] = b1[strlen(b1)-i-1] - '0';
	}
//****i+j-1呢,事实上,j是指正常的计算进位(一位一位进行乘法计算),而i就是我们说的错位相加
	for (int i = 0; i < strlen(a1); i++)
	{
		for (int j = 0; j < strlen(b1); j++)
		{
			c[i + j ] += a[i] * b[j];
		}
	}
	for (int i = 0; i < strlen(a1) + strlen(b1) - 1; i++)
	{
		if (c[i] > 9)//大于9则需要进位
		{
			c[i + 1] += c[i] / 10;
			c[i] %= 10;
		}
	}
	int len = strlen(a1) + strlen(b1);
	while (c[len-1] == 0 && len > 1)len--;
	for (int i = len-1; i >= 0; i--)cout << c[i];

	return 0;
}

总结:

乘法要错位相加;

注意倒序输入,倒序输出

这个代码多次复习

标签:10001,day8,int,len,a1,b1,P1303,Problem,strlen
From: https://blog.csdn.net/remaker15/article/details/140107939

相关文章

  • Day8 翻转字符串里面的单词,右旋字符串
    翻转字符串里面的单词我觉得这道题是一道可以很好的帮助我们的理解再次关于快慢双指针,希望我们能够经过我们多次的锻炼来提高自己的水平!题目在知道题里面,我们要做的不仅仅是单纯的翻转字符我们还需要将这个空格整掉,但是在每一个单词与单词之间我们还要有一个空格,所以我们......
  • [MdOI R5] Many Minimizations & [ARC164F] Many Increasing Problems 题解
    讲下一个思路比较自然的基于自然数幂和的\(O(n\logn)\)且复杂度与\(m\)几乎无关的做法。不难发现让我们计数的问题是保序回归\(L_1\)中一条链的情况。这个情况有一个简单的slope-trick做法:用堆维护斜率,每次push进去两个当前的数,然后pop出一个最大值。最终所有数的和......
  • [MdOI R5] Many Minimizations & [ARC164F] Many Increasing Problems 题解
    讲下一个思路比较自然的基于自然数幂和的\(O(n\logn)\)且复杂度与\(m\)几乎无关的做法。不难发现让我们计数的问题是保序回归\(L_1\)中一条链的情况。这个情况有一个简单的slope-trick做法:用堆维护斜率,每次push进去两个当前的数,然后pop出一个最大值。最终所有数的和......
  • 打卡信奥刷题(132)用Scratch图形化工具信奥P9913 [普及组]「RiOI-03」water problem
    「RiOI-03」waterproblem题目描述给定一个正整数nnn,问一个正方形能否被分割为nn......
  • [题解]AT_abc256_h [ABC256Ex] I like Query Problem
    思路首先可以看一下P4145,在P4145中使用了一种叫势能线段树的Trick。对于势能线段树,我个人的理解是,对于一段区间(或一个点)直接暴力维护,在经过很少的次数后操作将没有意义的题就可以使用势能线段树。在本题中,如果没有推平操作,显然我们可以直接使用势能线段树,时间复杂度可以轻......
  • 1619D New Year‘s Problem
    题目链接:NewYear'sProblem从题目的描述中很容易看出来这是一道二分的题目,那么怎么去考虑呢?首先最多选n-1个商店,那也就是说至少有一个商店要选两个人或以上,因此我们的check函数可以去一个个枚举商店,看看是否有一个商店满足两个人,然后每个人选的价值都要大于mid。代码附上:#i......
  • day8字符串
    有一说一,又是一道题都做不出来的一天KMP感觉理解了,但是敲不对,有点麻一道一道记录下题目:https://leetcode.cn/problems/reverse-words-in-a-string/解析:https://programmercarl.com/0151.翻转字符串里的单词.html#算法公开课这道题的精髓是消除所有空格:stringstripSpaces......
  • 【课程总结】Day8(上):深度学习基本流程
    前言在上一篇课程《【课程总结】Day7:深度学习概述》中,我们了解到:模型训练过程→本质上是固定w和b参数的过程;让模型更好→本质上就是让模型的损失值loss变小;让loss变小→本质上就是求loss函数的最小值;本篇文章,我们将继续深入了解深度学习的项目流程,包括:批量化打包数据、模......
  • 洛谷P1601 A+B Problem(高精)
    #include<iostream>#include<string>#include<cstring>#include<cstdio>usingnamespacestd;constintN=1005;structbign{intlen,s[N];bign(){memset(s,0,sizeof(s));len=1;}bign(intnum){*this=num;}......
  • D. "a" String Problem
    原题链接一句话题解由于t必须要包含非a字符,所以假如t包含前k个非a字符,那么s所包含的非a字符数量一定是k的倍数实施遍历t能包含几个非a字符,然后再算有几种填充a的方法复杂度\(logn·n\)之所以有logn是因为遍历s包含的非a字符数量的因子code#include<bits/stdc++.h>using......