首页 > 编程语言 >编程一小时2023.5.14

编程一小时2023.5.14

时间:2023-05-14 22:56:06浏览次数:49  
标签:cout int res 编程 -- vector 2023.5 size 14

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

bool cmp(vector<int> &A,vector<int> &B)
{
if(A.size()!=B.size()) return A.size()>B.size();
for(int i=A.size()-1;i>=0;i--)
if(A[i]!=B[i])
return A[i]>B[i];
return true;
}

vector<int> add(vector<int> &A,vector<int> &B) 
{
vector<int> res;
for(int i=0,t=0;i<A.size() || i<B.size() || t;i++)
{
if(i<A.size()) t+=A[i];
if(i<B.size()) t+=B[i];
res.push_back(t%10);
t/=10;
}
return res;
}

vector<int> sub(vector<int> &A,vector<int> &B)
{
vector<int> res;
for(int i=0,t=0;i<A.size();i++)
{
t=A[i]-t;
if(i<B.size()) t-=B[i];
res.push_back((t+10)%10);
if(t<0) t=1;
else t=0;
}
while(res.size()>1 && res.back()==0) res.pop_back();
return res;
}

vector<int> mul(vector<int> &A,vector<int> &B) 
{
vector<int> res(A.size()+B.size(),0);
for(int i=0;i<A.size();i++)
for(int j=0;j<B.size();j++)
res[i+j]+=A[i]*B[j];
for(int i=0,t=0;i<res.size();i++)
{
t+=res[i];
res[i]=t%10;
t/=10;
}
while(res.size()>1 && res.back()==0) res.pop_back();
return res;
}

int main()
{
vector<int> A,B,C,D,E; 
string a,b;
cin>>a>>b;
for(int i=a.size()-1;i>=0;i--) 
if(a[i]!='-') A.push_back(a[i]-'0');
for(int i=b.size()-1;i>=0;i--)
if(b[i]!='-') B.push_back(b[i]-'0');

if(a[0]!='-' && b[0]!='-') // 即a+b,a-b,a*b
{
C=add(A,B); 
for(int i=C.size()-1;i>=0;i--) cout<<C[i]; cout<<endl;

if(cmp(A,B)) D=sub(A,B);
else
{
D=sub(B,A);
cout<<'-';
}
for(int i=D.size()-1;i>=0;i--) cout<<D[i]; cout<<endl;

E=mul(A,B); 
for(int i=E.size()-1;i>=0;i--) cout<<E[i]; cout<<endl;
}
else if(a[0]=='-' && b[0]=='-') // 即(-a)+(-b),(-a)-(-b),(-a)*(-b)
{
C=add(A,B);
cout<<'-';
for(int i=C.size()-1;i>=0;i--) cout<<C[i]; cout<<endl;

if(cmp(A,B))
{
D=sub(A,B);
cout<<'-';
}
else D=sub(B,A);
for(int i=D.size()-1;i>=0;i--) cout<<D[i]; cout<<endl;

E=mul(A,B); 
for(int i=E.size()-1;i>=0;i--) cout<<E[i]; cout<<endl;
}
else if(a[0]=='-' && b[0]!='-') // (-a)+b,(-a)-b,(-a)*b
{
if(cmp(A,B))
{
D=sub(A,B); 
cout<<'-';
}
else D=sub(B,A);
for(int i=D.size()-1;i>=0;i--) cout<<D[i]; cout<<endl;

C=add(A,B); 
cout<<'-';
for(int i=C.size()-1;i>=0;i--) cout<<C[i]; cout<<endl;

E=mul(A,B);
cout<<'-';
for(int i=E.size()-1;i>=0;i--) cout<<E[i]; cout<<endl;
}
else if(a[0]!='-' && b[0]=='-') // a+(-b),a-(-b),a*(-b)
{
if(cmp(A,B)) D=sub(A,B);
else
{
D=sub(B,A);
cout<<'-';
}
for(int i=D.size()-1;i>=0;i--) cout<<D[i]; cout<<endl;

C=add(A,B); 
for(int i=C.size()-1;i>=0;i--) cout<<C[i]; cout<<endl;

E=mul(A,B); 
cout<<'-';
for(int i=E.size()-1;i>=0;i--) cout<<E[i]; cout<<endl;
}
return 0;
}

标签:cout,int,res,编程,--,vector,2023.5,size,14
From: https://www.cnblogs.com/zbl040721/p/17400493.html

相关文章

  • 2023大连思科-英语技术顾问(BDE)笔试技术卷编程题
    记录自己第一次手撕代码...1.html实现以下布局2.给定一个包含n个正整数的数组和一个正整数s,找出数组中满足其和sum>=s的长度最小的连续子数组,并返回其长度。如果不存在子数组,则返回0。publicintminSubArrayLen(inttarget,int[]nums){intleft=0;......
  • 2023/5/14
    L1-018大笨钟分数 10全屏浏览题目作者 陈越单位 浙江大学微博上有个自称“大笨钟V”的家伙,每天敲钟催促码农们爱惜身体早点睡觉。不过由于笨钟自己作息也不是很规律,所以敲钟并不定时。一般敲钟的点数是根据敲钟时间而定的,如果正好在某个整点敲,那么“......
  • 每日总结2023-05-14
    今天运用mybaits来进行mysql操作:连接数据库信息:<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEconfigurationPUBLIC"-//mybatis.org//DTDConfig3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">......
  • 【230514-1】证明:三角形的中线小于夹它的两边长度之和的一半
    ......
  • 2023 5 14
     ......
  • LabVIEW 面向对象编程(oop)-简单工厂模式程序Demo,基于Modbus的RS485通讯,程序Demo已经
    LabVIEW面向对象编程(oop)-简单工厂模式程序Demo,基于Modbus的RS485通讯,程序Demo已经过初步验证测试效果良好,整体操作过程已录制视频(视频时长40分钟),手把手进行讲解简单工厂模式的注意点和编写步骤,手把手教你创建一个简单工厂模式。ID:7156622766004941......
  • 2023.5.14——软件工程日报
    所花时间(包括上课):6h代码量(行):0行博客量(篇):1篇今天,上午学习,下午学习。我了解到的知识点:1.了解了一些数据库的知识;2.了解了一些python的知识;3.了解了一些英语知识;5.了解了一些Javaweb的知识;4.了解了一些数学建模的知识;6.了解了一些计算机网络的知识;......
  • 5.14
    #include<iostream>#include<string>usingnamespacestd;classMyprint{public:voidoperator()(stringtext){cout<<text<<endl;}};voidtest1(){Myprintmyprint;myprint("helloworld");}classMyadd{public:intoperato......
  • 5-14打卡 力扣24. 两两交换链表中的节点
    给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。示例1:输入:head=[1,2,3,4]输出:[2,1,4,3]示例2:输入:head=[]输出:[]示例3:输入:head=[1]输出:[1]来源:力扣(LeetCode)链接:https://leetco......
  • 23-5-14--循环控制结构--进化论
     在“一年一度喜剧大赛”上有一部作品《进化论》,讲的是动物园两只猩猩进化的故事。猩猩吕严说自己已经进化了9年了,因为“三年又三年”。猩猩土豆指出“三年又三年是六年呐”……本题给定两个数字,以及用这两个数字计算的结果,要求你根据结果判断,这是吕严算出来的,还是土豆算出来......