实现N的N次方求其最高位数字
来源:互联网 发布:数控精雕机编程 编辑:程序博客网 时间:2024/05/21 11:25
我们在编写程序的时候1^1、2^2、3^3这些数字都很好求
例如3^3 = 27
最高位为2
4^4 = 256
最高位为2
那如果n是一个极大的数据的,例如99999,7878787878类似于这种你要怎么求呢?
我们都知道 num^num 可以装换成a * 10 ^n这种形式
我们姑且在等号两边同时取对数,就有 num * log10(num) = n + log(10)a;
a的整数部分就是最高位
我们设x=num * log10(num);
那么a就等于10^(x的小数部分)
我们就可以把式子简化成
(int)a = pow(10, x - (__int64)x);
最后就可以求得a的值就是最高位数字
#include <iostream>#include <string>#include <cmath>using namespace std;int main(){ //num ^ num = 10 ^ n * a; //num * lg(num) = n + lg(a); //x = num * lg(num) //n = (int)x; unsigned long long n; int t; while(cin >> t){ for(int i = 0; i < t; i++){ //n = 0; cin >> n; double x = n * log10(n * 1.0); int a = pow(10.0, x - (__int64) x); cout << a << endl; } }}
2 0
- 实现N的N次方求其最高位数字
- N的N次方的最高位
- 求N的N次方的最高位
- 求n!的最高位数字
- hdu1060(计算n^n最高位的数字)
- N!的最高位
- 求N!的最高位
- 求n!的最高位
- n的m次方的最高位c++求法(xdoj 1029)
- HDU Leftmost Digit(求n^n最高位的数字)
- 实现n的k次方
- N的N次方
- N的N次方
- N的N次方
- N的N次方
- N的N次方
- N的N次方
- 求N的阶乘的最高位
- Caffe-Windows下画loss与accuracy曲线
- 使用 Python 搭建简易版AlphaGo
- MySQL 5.6 (Win7 64位)下载、安装与配置图文教程
- UIWebview交互之自定义传值跳转
- xml文件 数据库 字符转译f
- 实现N的N次方求其最高位数字
- UML关系
- myeclipse非正常关闭处理办法
- Linux 查找两个文件的不同
- CircleImageView 设置无边框
- js setInterVal()实时显示时间、日期
- Makefile常用调试方法
- eclipse中将maven工程变成普通的web工程,添加到tomcat
- Facebook面试题 Moving positive, negative and zeros in an array