ACM之数论数字根
先来看一道杭电的数字根问题
此题的大大意是输入一个数。假设它不是一位的数字的话,那么我们就将它的每一位都相加,相加后假设还是两位或者很多其它的话那么我们继续取出它的每一位数字进行相加。知道等到单个数字为止。
初次看到这道题。并没有看n的取值范围,便直接写了个int类型的。不一会就写出来了,測试,通过。然而呢。当我提交的时候才知道。正由于没有给出n的取值范围,所以你须要考虑大数的问题!
当然数论的题,经常包括着我们也许不知道的定理啊,什么的。毕竟像ACM之类的题,我们通常不能直接依照题目的叙述直接做,比方求各数字,相加等等·····当然有些题还是能够在保证时间和空间都不超的情况下,这样试试!此题也不例外,
先是两种依照题意做的
这篇代码是我依照题意建立字符数组写的,但最坑的是题意的n仅仅写了一个more,就是这个more让我程序卡了一天。我最初定义的字符数组长度为1000,刚优点在这个边界值上,1001都能够过,注意,注意。注意!
这样的算法採用了递归的思想和第一种方法大同小异吧!
接下来便是才用9余数的方法去求数字根,先贴代码
下一道题将会介绍9余数:
以下这道题,则既用了数字根,也用了高速幂
对于这道题,先介绍两个重要的东西
1.九余数定理:假设把一个大数的各位数字相加得到一个和。再把这个和的各位数字相加又得一个和。再继续作数字和。直到最后的数字和是个位数为止,
这最后的数称为最初那个数的“数字根”。这个数字根等于原数除以9的余数,因此这个计算过程经常称为“合九法”
此外: 概念:一个数对9求余的结果。成为九余数
有定理,某个数各个位上的数相加对九求余等于这个数的九余数。
样例:1234%9=1
(1+2+3+4)%9=1
二者相等。
2.高速幂:(同余定理)假设两个乘积除以m的余数等于这两个数分别除以m的余数积。
比如:7%3=1 5%3=2 7*5/3=2=1*2
求高速幂的代码例如以下:
灰常实用的!
最后附上此题代码:
——- 2016.3.29晚于电子楼311
ACM之数论数字根的更多相关文章
- 数字根(digital root)
来源:LeetCode 258 Add Dights Question:Given a non-negative integer num , repeatedly add all its digi ...
- 1. 数字根(Digital Root)
数字根(Digital Root)就是把一个自然数的各位数字相加,再将所得数的各位数字相加,直到所得数为一位数字为止.而这个一位数便是原来数字的数字根.例如: 198的数字根为9(1+9+8=18,1 ...
- 洛谷 P3962 [TJOI2013]数字根 解题报告
P3962 [TJOI2013]数字根 题意 数字根:这个数字每一位的数字加起来求和,反复这个过程直到和小于10. 给出序列\(a\),询问区间\([l,r]\)连续的子区间里最大前5个不同的数字根, ...
- TJOI2013数字根
题面链接 洛谷 sol 我们先不考虑\(0\),发现数字根\(=\)它\(mod 9\). 我们前缀和一波,把区间和变成两数相减. 对于每个\(v\in\{0-8\}\),(这里面的\(mod 9=0 ...
- Luogu P3962 [TJOI2013]数字根 st
题面 我先对数字根打了个表,然后得到了一个结论:\(a\)的数字根=\((a-1)mod 9+1\) 我在询问大佬后,大佬给出了一个简单的证明: \(\because 10^n\equiv 1(mod ...
- 洛谷3962 [TJOI2013]数字根
题目描述 一个数字的数字根定义为:这个数字每一位的数字加起来求和,反复这个过程直到和小于10.例如,64357的数字跟为7,因为6+4+3+5+7=25,2+5=7个区间的数字根定义为这个区间所有数字 ...
- ACM 蛇形填数
蛇形填数 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 在n*n方陈里填入1,2,...,n*n,要求填成蛇形.例如n=4时方陈为:10 11 12 19 16 1 ...
- 【ACM】NYOJ_69_数的长度_20130725
数的长度时间限制:3000 ms | 内存限制:65535 KB 难度:1描述 N!阶乘是一个非常大的数,大家都知道计算公式是N!=N*(N-1)······*2*1.现在你的任务是计算出 ...
- LeetCode 258 Add Digits(数字相加,数字根)
翻译 给定一个非负整型数字,反复相加其全部的数字直到最后的结果仅仅有一位数. 比如: 给定sum = 38,这个过程就像是:3 + 8 = 11.1 + 1 = 2.由于2仅仅有一位数.所以返回它. ...
随机推荐
- 包含绑定变量的sql进行调优需注意一点
拿1个sql举个例子,我只贴出了where后面部分 实际环境中有init_date 和direct_no的组合索引IDX_DATE_NO 上诉标红处,:b3=0 和:b3<>0这两种情况o ...
- Deep_into_iris
具体ipynb文件请移步Github #各种所需要的库函数首先加载 import numpy as np import pandas as pd import matplotlib.pyplot as ...
- fossil 使用
~$ fossil updateCannot figure out who you are! Consider using the --usercommand line option, setting ...
- 关于inet_ntop、inet_pton中的n和p分别代表的意义
函数名中的p和n非别代表表达(presentation)和数值(numeric).地址的表达格式通常是ASCII字符串,数值格式则是存放到套接字地址结构中的二进制值. 参考自:https://blog ...
- Python中的函数(3)
一.包含返回值的函数 下面来看一个函数,它接收名和姓并返回完整的姓名: def get_formatted_name(first_name,last_name): """ ...
- PCB线宽与电流计算器--在线计算
http://eda365.com/article-12-1.html 计算线宽与载流量的关系,方便设计:单个人建议在有限的空间尽量将大电流线路加宽.
- u-boot-2012.04.01移植笔记——支持NAND启动
1.加入nand读写函数文件: 对于nand的读写我们需要特定的函数,之前写最小bootloader的时候曾写过nand.c文件,我们需要用到它.为了避免混淆,我们先将其改名为init.c,然后拷贝到 ...
- Mysql索引研究总结
闲来无事,研究了一下mysql索引,场景如下: 有一张MyISAM 类型的zt_action表,数据大约230W行,建两个索引,CREATE INDEX `read` ON zt_action(`re ...
- gitHub网站上常见英语翻译2
repositories资料库 compilers with rich code analysis APIs.编译器具有丰富的代码分析API. plugins插件 With a variety of ...
- PTA 02-线性结构4 Pop Sequence (25分)
题目地址 https://pta.patest.cn/pta/test/16/exam/4/question/665 5-3 Pop Sequence (25分) Given a stack wh ...