蓝桥杯打卡Day6


文章目录

  • N的阶乘
  • 基本算术
  • 整数查询

一、N的阶乘OI链接

本题思路: 本题是关于高精度的模板题。

cpp 复制代码
#pragma GCC optimize(3)
#include <bits/stdc++.h>

constexpr int N=1010;

std::vector<int> a;
std::vector<int> f[N];

std::vector<int> mul(int b)
{
  std::vector<int> c;
  int t=0;
  for(int i=0;i<a.size();i++){
    t+=a[i]*b;
    c.push_back(t%10);
    t/=10;
  }
  
  while(t){
    c.push_back(t%10);
    t/=10;
  }
  
  a=c;
  return c;
}

int main()
{
  std::ios::sync_with_stdio(false);
  std::cin.tie(nullptr);std::cout.tie(nullptr);
  
  a.push_back(1);
  
  f[0]={1};
  for(int i=1;i<=N;i++)
    f[i]=mul(i);
  
  int n;
  while(std::cin>>n){
    for(int i=f[n].size()-1;i>=0;i--) std::cout<<f[n][i];
    std::cout<<std::endl;
  }
  return 0;
}

二、基本算术OI链接

**本题思路:**本题是高精度的模板题。

cpp 复制代码
#include <bits/stdc++.h>

int add(std::vector<int> a,std::vector<int> b)
{
  int t=0;
  int cnt=0;
  
  for(int i=0;i<a.size()||i<b.size();i++){
    if(i<a.size()) t+=a[i];
    if(i<b.size()) t+=b[i];
    
    if(t>=10) cnt++;
    t/=10;
  }
  
  return cnt;
}

int main()
{
  std::ios::sync_with_stdio(false);
  std::cin.tie(nullptr);std::cout.tie(nullptr);
  
  while(true){
    std::string num1,num2;
    std::cin>>num1>>num2;
    
    if(num1=="0"&&num2=="0") break;
    
    std::vector<int> a,b;
    
    for(int i=num1.size()-1;i>=0;i--) a.push_back(num1[i]-'0');
    for(int i=num2.size()-1;i>=0;i--) b.push_back(num2[i]-'0');
    
    int res=add(a,b);
    if(res==0) std::cout<<"No carry operation."<<std::endl;
    else if(res==1) std::cout<<res<<" carry operation."<<std::endl;
    else std::cout<<res<<" carry operations."<<std::endl;
  }
  return 0;
}

三、整数查询OI链接

本题思路: 本题是高精度的模板题。

cpp 复制代码
#include <bits/stdc++.h>

std::vector<int> res={0};

std::vector<int> add(std::vector<int> a)
{
    int t=0;
    std::vector<int> c;
    
    for(int i=0;i<res.size()||i<a.size();i++){
        if(i<res.size()) t+=res[i];
        if(i<a.size()) t+=a[i];
        
        c.push_back(t%10);
        t/=10;
    }
    
    if(t) c.push_back(1);
    return c;
}

int main()
{
    std::ios::sync_with_stdio(false);
    std::cin.tie(nullptr);std::cout.tie(nullptr);
    
    std::string num;
    
    
    while(true){
        std::cin>>num;
        if(num=="0") break;
        
        std::vector<int> a;
        for(int i=num.size()-1;i>=0;i--) a.push_back(num[i]-'0');
        
        res=add(a);
    }
    
    while(res.size()>1&&res.back()==0) res.pop_back();
    for (int i = res.size() - 1; i >= 0; -- i )
        std::cout << res[i];
    std::cout << std::endl;
    
    return 0;
}
相关推荐
考试宝3 小时前
国家宠物美容师职业技能等级评价(高级)理论考试题
经验分享·笔记·职场和发展·学习方法·业界资讯·宠物
面试鸭4 小时前
离谱!买个人信息买到网安公司头上???
java·开发语言·职场和发展
测试19986 小时前
2024软件测试面试热点问题
自动化测试·软件测试·python·测试工具·面试·职场和发展·压力测试
程序员勋勋9 小时前
【自动化测试】如何在jenkins中搭建allure
职场和发展·jenkins·测试覆盖率
咕咕吖9 小时前
对称二叉树(力扣101)
算法·leetcode·职场和发展
sszmvb123410 小时前
测试开发 | 电商业务性能测试: Jmeter 参数化功能实现注册登录的数据驱动
jmeter·面试·职场和发展
测试杂货铺10 小时前
外包干了2年,快要废了。。
自动化测试·软件测试·python·功能测试·测试工具·面试·职场和发展
测试界萧萧12 小时前
外包干了4年,技术退步太明显了。。。。。
自动化测试·软件测试·功能测试·程序人生·面试·职场和发展
小码哥说测试12 小时前
接口测试用例设计的关键步骤与技巧解析!
自动化测试·测试工具·jmeter·职场和发展·测试用例·接口测试·postman
linsa_pursuer13 小时前
快乐数算法
算法·leetcode·职场和发展