1113 钱串子的加法

2024-06-01 02:52
文章标签 加法 1113 钱串子

本文主要是介绍1113 钱串子的加法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述
在这里插入图片描述

idea

  • 测试点3:输入的两个整数都是0
  • 测试点4.5:大数,需要用大数加法

solution1(测试点4,5不通过)

直接相加再转30进制

#include<iostream>
#include<string>
using namespace std;
typedef long long ll;
string a, b, sum = "", temp;
ll change(string s){ll power = 1, ans = 0;for(int i = s.size() - 1; i >= 0; i--){if(isdigit(s[i])) ans += (s[i] - '0') * power;else ans += (s[i] - 'a' + 10) * power;power *= 30;}return ans;
}
int main(){ll an, bn, sumn, t;cin >> a >> b;an = change(a);bn = change(b);sumn = an + bn;do{t = sumn % 30;temp = t - 10 + 'a';if(t < 10) sum = to_string(t) + sum;else sum = temp + sum;sumn /= 30;}while(sumn);cout << sum;return 0;
} 

solution2

#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int main(){string a, b, sum = "";int ta, tb, tsum, carry = 0;cin >> a >> b;if(a.size() < b.size())swap(a, b);while(b.size() < a.size()) b = "0" + b;for(int i = a.size() - 1; i >= 0; i--){if(isdigit(a[i])) ta = a[i] - '0';else ta = a[i] - 'a' + 10;if(isdigit(b[i])) tb = b[i] - '0';else tb = b[i] - 'a' + 10;tsum = (ta + tb + carry) % 30;carry = (ta + tb + carry) / 30;if(tsum < 10) sum += to_string(tsum);else sum += tsum - 10 + 'a';}if(carry) sum += "1";reverse(sum.begin(), sum.end());while(sum[0] == '0' && sum.size() > 1) sum.erase(0, 1);cout << sum;return 0;
}

这篇关于1113 钱串子的加法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1019787

相关文章

poj 1113 凸包+简单几何计算

题意: 给N个平面上的点,现在要在离点外L米处建城墙,使得城墙把所有点都包含进去且城墙的长度最短。 解析: 韬哥出的某次训练赛上A出的第一道计算几何,算是大水题吧。 用convexhull算法把凸包求出来,然后加加减减就A了。 计算见下图: 好久没玩画图了啊好开心。 代码: #include <iostream>#include <cstdio>#inclu

uva 10069 DP + 大数加法

代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstring>#include <cmath>#include <stack>#include <vector>#include <queue>#include <map>#include <cl

高精度加法,乘法,阶乘

#include <iostream>#include <map>#include <string>#include <algorithm>using namespace std;const int Max = 50000;string str1,str2;/***********乘法***********/void chenfa(){cin >> str1>>str2;int a

【OpenCV2.2】图像的算术与位运算(图像的加法运算、图像的减法运算、图像的融合)、OpenCV的位运算(非操作、与运算、或和异或)

1 图像的算术运算 1.1 图像的加法运算 1.2 图像的减法运算 1.3 图像的融合 2 OpenCV的位运算 2.1 非操作 2.2 与运算 2.3 或和异或 1 图像的算术运算 1.1 图像的加法运算 add opencv使用add来执行图像的加法运算 图片就是矩阵, 图片的加法运算就是矩阵的加法运算, 这就要求加法运算的两张图shape必须是相同的. # 图片加法imp

【PyTorch常用库函数】torch.add():张量的加法操作

🎬 鸽芷咕:个人主页  🔥 个人专栏: 《C++干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 文章目录 前言一 、torch.add()函数的基本用法二、示例演示示例1:两个相同形状的一维张量相加示例2:两个不同形状的一维张量相加(错误示例)示例3:使用alpha参数进行加权加法 结尾 前言 PyTorch作为一

图像的加法 | 05

大于255的直接取255。 code: import cv2 as cvimport matplotlib.pyplot as plt​rain = cv.imread("../Dataset/TrainValDataset/Image/camourflage_00007.jpg")plt.imshow(rain[:,:,::-1])plt.show()​view =

C++高精度算法--加法

一.头文件         1.<iostream>         2.<cstdio>         3.<cstring>                 *cstring 速度更快,尽量不用string 二.代码 #include <iostream>#include <cstdio>#include <cstring>using namespace std;cons

大整数问题,乘法,加法,阶乘

//大整数相乘 //c[i+j] += a[i]*b[j];数组的每一位相乘然后相加,并得到最终结果 //再考虑进位问题  #include <string.h> #include <stdio.h> #define SIZE 50 int a[SIZE],b[SIZE],c[SIZE*2]; void big_multi(int a[],int b[],int c[]

leetcode371 Sum Of Integers 不用加法计算两个整数的和

Description Calculate the sum of two integers a and b, but you are not allowed to use the operator + and -. Example: Given a = 1 and b = 2, return 3. 解法 思路: 首先不能用”+”、” - “符号,那么计算两个数的和也就只能用“位运算符”