高精度数是OJ题目中最主要的一类题
数组去模拟高精度数是目前最常用的方法
除此之外,还可以通过使用string去模拟也是可以的

取余,是高精度数中主要的一个算法。
这里主要展示自己的高精度数取余的一个操作函数

算法思路:
模拟数学中关于除法,和余数的定义,根据竖式表达式运算得到
PS:注意点是,temp部分是必须的,避免更改原来的数据,所以不能使用
a[i] += flag;操作

    int Chu_left(int n){int flag = 0,temp = 0;for (int i = 0; i < size; ++i){flag *= 10;temp = a[i] + flag;flag = temp % n;}return flag;}

高精度数,附有取余操作的代码如下:

struct Num{int *a;int size;Num(){a = new int[100];size = 0;}Num(string &s){a = new int[s.size()];size = 0;for (int i = 0; i < s.size(); ++i){a[i] = s[i] - '0'; }size = s.size();}int Chu_left(int n){int flag = 0,temp = 0;for (int i = 0; i < size; ++i){flag *= 10;temp = a[i] + flag;flag = temp % n;}return flag;}~Num(){delete[] a;}
};

加上main函数部分,就可以做出SOJ1020题

int main(){int time, array_size, array[100], ans_array[100];cin >> time;while (time--) {cin >> array_size;for (int i = 0; i < array_size; ++i){cin >> array[i];}string num;cin >> num;Num n(num);cout<< "("; for (int i = 0; i < array_size; ++i){cout << n.Chu_left(array[i]);if (i != array_size-1){cout << ",";} else {cout << ")\n";}}}
}

欢迎关注我用于做笔记的公众号:肥宅Sean笔记

高精度数取余(C\C++)相关推荐

  1. 0对任何数取余_大数取余

    有一类题目会因为求出的结果太大而只要求输出对某个数m取余后的结果,而且这个m是比较小的数,比如不超过32位整数- 而这类大数都是可以由较小的数经过某些运算得到的- 于是我整理了一下对付几种运算的方法- ...

  2. 0对任何数取余_初等数论_第五章__同余方程

    第五章同余方程 本章主要介绍同余方程的基础知识,并介绍几类特殊的同余方程的解法. 第一节同余方程的基本概念 本节要介绍同余方程的基本概念及一次同余方程. 在本章中,总假定m是正整数. 定义1设f(x) ...

  3. (C++)除基取余法:将十进制数转化为Q进制数

    所谓基,就是指将要转换成的进制Q. 除基取余的意思就是:每次将待转换数除以Q,然后将得到的余数作为低位存储,而商则继续除以Q并重复上面的操作,直至商0时,将所有位从高到低输出就可以得到Q进制数. 代码 ...

  4. UVA 10494 - If We Were a Child Again(高精度除法和取余)

    题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...

  5. 输入一个四位数将其加密后输出c语言,输入一个四位数,将其加密后输出.方法是将该数每一位的数字加9,然后除以10取余作为该位上的新数字,最后将千位上的数字和十...

    问题描述: 输入一个四位数,将其加密后输出.方法是将该数每一位的数字加9,然后除以10取余作为该位上的新数字,最后将千位上的数字和十位上的数字互换,组成加密后的新四位数. #include int m ...

  6. 数制转换,使用按权展开法将二进制数转换为十进制数,使用短除法除2取余计算十进制数转换为二进制数

    1:数制转换 1.1 问题 1)请将下列数字转换为十进制数: (110010011111)2 .(10110101110)2 2)请将下列十进制数转换为二进制: 156.2608.1043 1.2 方 ...

  7. 给你两个整数,被除数 dividend 和除数 divisor。将两数相除,要求 不使用 乘法、除法和取余运算。

    给你两个整数,被除数 dividend 和除数 divisor.将两数相除,要求 不使用 乘法.除法和取余运算. 整数除法应该向零截断,也就是截去(truncate)其小数部分.例如,8.345 将被 ...

  8. 蓝桥杯算法训练之数对(取余取整)

    问题描述 编写一个程序,该程序从用户读入一个整数,然后列出所有的数对,每个数对的乘积即为该数. 输入格式:输入只有一行,即一个整数. 输出格式:输出有若干行,每一行是一个乘法式子.(注意:运算符号与数 ...

  9. (C++)1022 D进制的A+B 除基取余法将10进制数换成给定进制数

    #include<cstdio> //除基取余法 const int M = 30;int main(){long long a,b,c;int D,ans[M+2];scanf(&quo ...

最新文章

  1. 【转载】nginx for windows: 让nginx以服务的方式运行
  2. DP专练2 (大理石 + [ZJOI 2010]数字计数)
  3. LeetCode 71. 简化路径(栈)
  4. 安装mysql查看随机密码命令_centos7/8 yum安装mysql8并查看默认root密码
  5. C语言求字符串并集,怎样用c语言写求集合的交集,并集,补集”这个程序?
  6. 统计学习方法——第四章朴素贝叶斯及c++实现
  7. js对文字的修饰 big() small() fixed() toUpperCase() toLowerCase()
  8. 电子邮件地址中服务器怎么看,你如何检查电子邮件服务器(gmail)中的某个地址,并基于该地址运行一些东西?...
  9. 北京科技大学计算机博士统考,北京科技大学计算机与通信工程学院2016年博士录取方案...
  10. C语言学习-翁凯(第五章笔记)
  11. 「题解」agc031_e Snuke the Phantom Thief
  12. import java util_java里面import java.util.*;是什么用处?
  13. DirectX End-User Runtimes2010 dl
  14. 64位 regsrv win10_有没有 极品飞车9 win10 64位的中文补丁
  15. excel自动筛选_在Excel 2007中按选择自动筛选
  16. 中心极限定理与大数定理理解
  17. 免注册登陆以及QQ登陆
  18. 读书百客:《走马川行奉送出师西征 / 走马川行奉送封大夫出师西征》赏析
  19. [有奖活动进行中]阿里数据库专家曾文旌为你解决数据库那些事
  20. mysql多表联合查询练习题

热门文章

  1. JS代理模式《JavaScript设计模式与开发实践》阅读笔记
  2. Linux阶段总结shell脚本
  3. react+dva+antd接口调用方式
  4. 如何对付“新垃圾邮件”?
  5. 2014 年第六届全国大学生数学竞赛预赛数学类最后一题参考解答
  6. 三天没有更新我的BLOG
  7. zentao这php,ZenTaoPHP后面计划
  8. winform combobox第12345行的数据_Python学习第109课--ndarray的创建和切分操作
  9. caffe:Data 层
  10. 【Python学习系列六】Python语言基本语法