数论常用内容——数根
来源:互联网 发布:蒋方舟 与男 知乎 编辑:程序博客网 时间:2024/05/17 00:09
对于数根可能接触的不多,但是我觉得这里还是应该做一下简单的总结和介绍
数根
数根(又称数字根Digital root)是自然数的一种性质,每个自然数都有一个数根。
数根是将一正整数的各个位数相加(即横向相加),若加完后的值大于等于10的话,则继续将各位数进行横向相加直到其值小于十为止,最后得到的数字就是该数的数根
数根的性质
root(a+b)=root(root(a)+root(b))root(a*b)=root(root(a)*root(b))root(a)=root(root(a/10)+a%10)
几种常用数根计算的代码实现
n的数根(模拟)
int root(int n){ while(n>9){ n=n%10+n/10; } return n;}
n的数根(找规律)
int _root(int n){ return n?(n+8)%9+1:0;}
n的数根(大数)
int __root(char *p){ int n=0; for(int i=0;p[i];i++){ n+=p[i]-'0'; } return n?(n+8)%9+1:0;}
n^n的数根(找规律)
int digitalRoot(int n){ int tree[19]={9,1,4,9,4,2,9,7,1,9,1,5,9,4,7,9,7,8}; return tree[n%18];}
a^b的数根(模拟)
int _digitalRoot(int a,int b){ a=root(a); int ans=1; while(b--) ans=root(ans*a); return ans;}
a^b的数根(二进制法)
int __digitalRoot(int a,int b){ a=root(a); int t=a,ans=1; while(b){ if(b&1)ans=root(ans*t); b>>1; t=root(t*t); } return ans;}
0 0
- 数论常用内容——数根
- 数论常用内容——整除
- 数论常用内容——阶乘
- 数论常用内容——素数
- 数论常用内容——反素数
- 数论常用内容——高斯消元
- 数论常用内容——矩阵快速幂
- 数论常用内容——欧拉函数
- 数论常用内容——中国剩余定理
- 数论常用内容——欧几里得算法与扩展欧几里得算法
- 数论——洛谷 P1362 兔子数
- 数论——组合数(基础)
- ACM常用模板——数论
- 数论内容
- 数论——拆分数++母函数模版
- 数论——水仙花数问题(Java实现)
- 数论(二)——数论函数
- 字符串常用方法—文件内容读写
- 文件夹权限问题 ubuntu
- 数据库
- 【计算机视觉】opencv靶标相机姿态解算3 根据两幅图像的位姿估计结果求某点的世界坐标 (三维重建)
- Agent admitted failure to sign using the key
- 机器学习之决策树(ID3)算法与Python实现
- 数论常用内容——数根
- 有关常量的知识点
- 蓝桥杯:剪邮票
- 【[R] 【教程】教你如何读懂线性回归lm的结果summary(判断显著性)[转]】
- @InitBinder注解的使用
- 输出字符串中连续最长的数字串
- 基于Nginx实现10万+并发,你应该做的Linux内核优化
- web.有要求的输入框.随笔
- Oracle存储过程及举例(几种参数情况的存储过程)