本题思路:本题是关于高精度的模板题。
- #pragma GCC optimize(3)
- #include
-
- 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
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<
- std::cout<
- }
- return 0;
- }
二、基本算术OI链接
本题思路:本题是高精度的模板题。
- #include
-
- int add(std::vector<int> a,std::vector<int> b)
- {
- int t=0;
- int cnt=0;
-
- for(int i=0;i
size()||isize();i++){ - if(i
size()) t+=a[i]; - if(i
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."<
- else if(res==1) std::cout<
" carry operation."< - else std::cout<
" carry operations."< - }
- return 0;
- }
三、整数查询OI链接
本题思路:本题是高精度的模板题。
- #include
-
- 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
size()||isize();i++){ - if(i
size()) t+=res[i]; - if(i
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;
- }
-
相关阅读:
cors 跨域问题 git pages 前后端分离 vue nest 问题 解决+总结
ts随记:面向对象、泛型
C语言进制转换(1112:进制转换(函数专题))
[Mybatis-Plus笔记] MybatisPlus-05-id生成策略,多数据操作,逻辑删除
SAP 物料分类账配置详解Part 2( 基于SAP S/4HANA1909 版本)
96-MySQL高级
详解编译和链接!
es6.x和es7.x如何创建索引?
【数学模型】TOPSIS
如何制作自己的数字人
-
原文地址:https://blog.csdn.net/qq_67458830/article/details/132804946