2012年9月5日
摘要: 这个题大意是:计算n^n的最高位数是什么。解题思路:1,令M=N^N;2,分别对等式两边取对数得log10(M)=N*log10(N),得M=10^(N*log10(N));3,令N*log10(N)=a+b,a为整数,b为小数;4,C函数:log10(),计算对数,pow(a,b)计算a^b5,由于10的任何整数次幂首位一定为1,所以,M的首位只和N*log10(N)的小数部分有关, 即只用求10^b救可以了;6,最后对10^b取整,输出取整的这个数就行了。(因为0<=b<1,所以1<=10^b<10对 其取整,那么的到的就是一个个位,也就是所求的数)。起初w了好几次 阅读全文
posted @ 2012-09-05 20:57 xinmenghuairi 阅读(278) 评论(0) 推荐(0) 编辑
摘要: ^按位异或的意思。就是“不同为1,相同为0” 1^1=0 0^1=1 0^0=0举个例子:3^5=?3=(0011)B 5=(0101)B 0011^ 0101———— 01100110的十进制数是6所以3^5=6这题其实是说存在一个大写字母x,然后让原文(都是大写字母)和x做xor后得到密文。现在给密文求原文。因为x不知道,所以枚举x。判断方法是判断是否解密出来的原文都在'A'-'Z'范围内。起初做的时候不明白那个异或怎么弄的。只要知道^符号就能做了。代码:View Code 1 #include<iostream> 2 using namespa 阅读全文
posted @ 2012-09-05 15:36 xinmenghuairi 阅读(343) 评论(0) 推荐(0) 编辑
摘要: 这道题讲的是求阶乘的位数。叫自己做真不知道该怎么做。我知道肯定是有公式的。在网上找了下是斯特林公式:lnN!=NlnN-N+0.5*ln(2*N*pi)有了这个公式就没问题了代码:View Code 1 #include<iostream> 2 #include<math.h> 3 #define pi 3.1415926 4 using namespace std; 5 int x,y; 6 void putresult() 7 { 8 double t=x; 9 t=(t*log(t)-t+0.5*log(2*t*pi))/log(10.0);10 y=int... 阅读全文
posted @ 2012-09-05 14:24 xinmenghuairi 阅读(229) 评论(0) 推荐(0) 编辑