大大大大数怎么求余?C语言
问题:
一个特别大的数除以23求余数用C语言应该怎么算啊?比如23232323232323232323232323232323232323232323232323232323233除以23,怎么算余数?
数据类型在计算机的存储是有大小限制的,所以才出现了大数求余这种问题,相对应的,我们的钱存储在银行也不可能用数字来表示,毕竟整个中国人的钱,远远超过了最大的数据类型的大小。
计算计算机最大数据类型的值:
#include "stdio.h"int main()
{printf("0~%lu\n",(1UL << sizeof(unsigned long long int)*8) -1);return 0;
}
输出
0~18446744073709551615
我们所说的大数是数字大于最大存储的变量,一个unsigned long long int
存储最大的自然数是18446744073709551615
,如果自然数大于这个数,就会溢出了。
有事说事,这个题目涉及数学知识,但是我觉得学好数学也是学好计算机的基础。
—— 有个知乎的同学进行了论证
对于取模23,只需要
1.声明结果变量,假设它是ans
, 令ans = 0
作为起始条件。
2.取走最高位数字,假设它是t
,令 ans = ans +t
.
3.如果还有数字没有被取走,则令 ans = (10*ans )%23
,并返回第二步。
最终得到的 ans
就是答案
—— 代码如下
#include "stdio.h"int main()
{int c;int ans = 0;/*如果没有按下Ctrl+C 就一直在while循环里面判断*/while ((c = getchar()) != EOF) {if (c == '\n') {/*输出结果*/printf("%d\n", ans);ans = 0;} else {/*递归计算*/// c in '0'...'9'c -= '0';ans = ans +c;ans = (ans*10)%3;}}return 0;
}
程序输出结果
weiqifa@bsp-ubuntu1804:~/c/dashuqiuyu$ gcc 1.c && ./a.out
0
0
1
1
2
2
3
0
12312312312
0
3235
1
23
2
5
2
156151859198153151561561561561561
0
数学论证过程
https://www.zhihu.com/question/431163782/answer/1644964013
推荐阅读:
专辑|Linux文章汇总
专辑|程序人生
专辑|C语言
我的知识小密圈
关注公众号,后台回复「1024」获取学习资料网盘链接。
欢迎点赞,关注,转发,在看,您的每一次鼓励,我都将铭记于心~
大大大大数怎么求余?C语言相关推荐
- Fibonacci数列求余 C语言
Fibonacci数列求余 C语言 问题描述 Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1. 当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是 ...
- java大整数的加减乘除_关于大整数的加减乘除求余运算 java
自己用java 实现了大字符串整数的加减乘除和求余运算, 加减法的算法是模拟手工笔算的计算过程, 除法就是从最高位不停的减操作, 乘法的算法 :遍历一个数的各个位数以及他所在位置,另一个数根据这个数的 ...
- Large Division-----同余模定理(大数的求余)
同余模定理 讲解转自博客: https://blog.csdn.net/qq_40873884/article/details/80312889 定义 所谓的同余,顾名思义,就是许多的数被一个数 d ...
- c语言怎么对大数求余,c语言取余数(c语言怎么求两数的余数)
C语言提供了一个取余数的运算符%,称之为"模"运算符.只有两个整数之间才可以进行模运算!a % b 表示 用b来整除a,商整数,得到余数.如:5%3 = 2 4%3 =13%3 . ...
- c语言求3个整数的平均数程序,c语言求余(c语言求任意三个数的平均值)
C语言提供了一个取余数的运算符%,称之为"模"运算符.只有两个整数之间才可以进行模运算!a % b 表示 用b来整除a,商整数,得到余数.如:5%3 = 2 4%3 =13%3 . ...
- C语言散列法求英文字母字符串求余,c语言求余数
he00692694 2012.10.13 采纳率:48% 等级:13 已帮助:6711人 #include #include void main() { int num,num2;//这里改了 ...
- c语言中int下小数求余大数,Sicily1020-大数求余算法及优化
Github最终优化代码: https://github.com/laiy/Datastructure-Algorithm/blob/master/sicily/1020.c 题目如下: 1020. ...
- c语言使用求余方式的转化为二进制程序,C语言第三讲 程序结构 (下).ppt
<C语言第三讲 程序结构 (下).ppt>由会员分享,可在线阅读,更多相关<C语言第三讲 程序结构 (下).ppt(24页珍藏版)>请在人人文库网上搜索. 1.1,第三讲 程序 ...
- 语言求余和乘除优先级_愉快地学Java语言:第二章基本程序设计 第2讲
导读 本文适合Java入门,不太适合Java中高级软件工程师. 本文以<Java程序设计基础篇>第10版为蓝本,采用不断提出问题,然后解答问题的方式来讲述. 本篇文章只是这个系列中的一篇, ...
最新文章
- rsync 同步数据
- 自动驾驶汽车对保险业的影响
- 算法导论之图的最小生成树
- Aupera:FPGA让视频编码与AI结合水到渠成
- 适合 Kubernetes 初学者的一些实战练习(一)
- ui自动化测试框架_浅谈前端(UI)自动化测试
- python 运维包_基础入门_Python-模块和包.运维开发中__import__动态导入最佳实践?
- 二进制安装mysql5.7
- Linux学习总结(六十六)打印一串数字的脚本
- 开发交接文档_为开发人员创造更好的设计交接体验
- http动态代理转socks5怎么获取?
- Android 使用Gallery仿3D画廊效果实现
- (转帖)-对乒乓球的思考
- 华为计步器下载手机版_华为健运动计步器
- 影评系统的机遇和挑战
- (Python)视频生成器
- 2022电工(初级)考题及答案
- 网易Java服务器端实习生电话面试
- 【PHP】Windows下最直接最简单查看PHP版本的方法
- Python Wechaty 微信聊天机器人 padlocal协议搭建指南