a^b的前n位数】的更多相关文章

假设我们现在需要知道 ab  的后 n 位数或前 n 位数,简单直观的做法就是求出 ab  的值,然后在分别取前 n位或后 n位,不过在 a,b很大的情况下显然是无法存储的.所以,直接求是不可能的了. 让我们先来看看后 n 位如何求?因为我们只要后 n 位,那么我们都知道把 ab  的值模上一个10n 就是所求.根据求模的性质:ab % n = (a%n)b % n;然后用快速幂跑一遍即可. int QuickPow (__int64 a, __int64 b) { __int64 r = ;…
NNNNN Time Limit: 2000/1000ms (Java/Others) Problem Description: 对于整数N,求N^N的前5位和后5位(1057题加强版) Input: 多组测试数据,每组测试数据输入为一个整数n(6 <= n <= 10^9),n为0时结束. Output: 对每组测试输出为两个整数a和b,由空格隔开,保留前后0,格式见样例. Sample Input: 6 10 110 1001 0 Sample Output: 46656 46656 10…
python中有一个zfill方法用来给字符串前面补0,非常有用 n = " s = n.zfill(5) " zfill()也可以给负数补0 n = "-123" s = n.zfill(5) assert s == "-0123" 对于纯数字,我们也可以通过格式化的方式来补0 n = 123 s = "%05d" % n "…
方式一: double f = 3.1516; BigDecimal b = new BigDecimal(f); , BigDecimal.ROUND_HALF_UP).doubleValue(); 输出结果f1为 3.15: 源码解读: public BigDecimal setScale(int newScale, int roundingMode) //int newScale 为小数点后保留的位数, int roundingMode 为变量进行取舍的方式: BigDecimal.ROU…
2007年到来了.经过2006年一年的修炼,数学神童zouyu终于把0到100000000的Fibonacci数列(f[0]=0,f[1]=1;f[i] = f[i-1]+f[i-2](i>=2))的值全部给背了下来.接下来,CodeStar决定要考考他,于是每问他一个数字,他就要把答案说出来,不过有的数字太长了.所以规定超过4位的只要说出前4位就可以了,可是CodeStar自己又记不住.于是他决定编写一个程序来测验zouyu说的是否正确.   Input 输入若干数字n(0 <= n <…
http://blog.csdn.net/yuhua3272004/article/details/3075436 使用java.math.BigDecimal工具类实现   java保留两位小数问题: 方式一(四舍五入形式保留两位小数,注意模式ROUND_HALF_UP): 四舍五入   double   f   =   111231.5585;   BigDecimal   b   =   new   BigDecimal(f);   double   f1   =   b.setScale…
面试题17:打印1到最大的n位数  题目:输入数字n,按顺序打印出从1最大的n位十进制数.比如输入3,则打印出1.2.3一直到最大的3位数即999. 考点: 用字符串或者数组表达一个大数. 思路 1.由于不知道n的范围,n很大的时候,用int或者long long 可能会溢出. 2.用字符串表达大数.'0'-'9',因为是N位的数,用N+1的字符串存储,最后一位保存结束符'\0',前半部分补零. 3.strlen函数用法 function <cstring> strlen size_t str…
Leftmost Digit Time Limit: 2000/1000ms (Java/Others) Problem Description: 给定一个正整数N,你应该输出N ^ N的最左边的数字. Input: 输入包含多个测试用例. 输入的第一行是单个整数T,它是测试用例的数量. T测试用例如下.每个测试用例都包含一个正整数N(1 <= N <= 10000). Hint:64位整数使用long long int,输入输出%lld. Output: 对于每个测试用例,您应该输出N^N的…
方法一:四舍五入 double f = 111231.5585; BigDecimal b = new BigDecimal(f); double f1 = b.setScale(2, RoundingMode.HALF_UP).doubleValue(); 在这里使用BigDecimal ,并且采用setScale方法来设置精确度,同时使用RoundingMode.HALF_UP表示使用最近数字舍入法则来近似计算.在这里我们可以看出BigDecimal和四舍五入是绝妙的搭配. 方式二: jav…
java验证身份证信息代码 转自:http://www.blogjava.net/xylz/archive/2011/01/05/342330.html import java.util.Calendar; import java.util.HashMap; import java.util.Map; /** /** * 身份证号码验证 * 1.号码的结构 * 公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成.排列顺序从左至右依次为:六位数字地址码, * 八位数字出生日期码,三位数字…