彩票网站开发制作网页简单制作流程
web/
2025/10/2 10:53:19/
文章来源:
彩票网站开发制作,网页简单制作流程,沙河网站建设,wordpress如何导入md文件夹我想知道怎么求N的N次方#xff0c;这个数据是很大的#xff0c;但是我要的是这个数据的最高位的数#xff0c;应该有什么好的方法吧#xff01; 请大侠们帮帮忙吧#xff01;#xff01;#xff08;N 1000000000#xff09; 这个问题提出后#xff0c;fallening同…我想知道怎么求N的N次方这个数据是很大的但是我要的是这个数据的最高位的数应该有什么好的方法吧 请大侠们帮帮忙吧N 1000000000 这个问题提出后fallening同学便很快的在五分钟内作出了解答log_10(N^N)N*log_10(N) 因此log_10(N)的第一位就是你要求的我在三楼看的很疑惑于是向同学提出问题一天之后他给出解答N^N10^(Nlog(N))10^(log(N))*10^N 10^(log(N))*1000...0(N个0) 你要最高位置的数字只需要计算10^(log(N))的最高位即可:)而到这里大家很明显就能看出这位同学的推理错误10^(N log(N)) 10^(log(N))*10^N。。。哈哈哈哈如果你和我一样开始笑话起这个同学那么我们就太可悲了。。。看看楼下的朋友们是怎么做的吧 hityct1我的想法 根据11楼的想法改动一下。 N^N 10^(N*log(N))中 由于 N 1000000000 N*log(N)取值在[0,9000000000]没有超出double数据的范围没有益处。 设N*log(N)的整数部分为intpart分数部分为fractpart 则N^N 10^(intpart fractpart) 10^intpart * 10^fractpart. 其中10^intpart肯定为10的倍数不影响结果可忽略。 所以 10^fractpart的最高位即为结果。 不用大数double即可满足。 #include iostream #include limits#include cmathusing namespace std; int GetHighest(const double n){//求n^n的最高位//注意n取 123...1000000000 double intpart; double fractpart modf ( n * log10(n), intpart); //显然分数部分在[0,1)之间所以temp在[1,10)之间那么整数部分即为结果 double temp pow( (double)10, fractpart); modf ( temp, intpart); return intpart;} void main() { //coutnumeric_limitsdouble::max()endl; coutGetHighest(1)endl; coutGetHighest(2)endl; coutGetHighest(3)endl; coutGetHighest(4)endl; coutGetHighest(5)endl; coutGetHighest(6)endl; coutGetHighest(4678)endl; coutGetHighest(1000)endl; coutGetHighest(1000000000)endl; coutGetHighest(1999)endl; coutGetHighest(999999999)endl;} 关键看你专注你什么了所以说少笑话他人而多想想该做什么事。勤思考多思考。这估计也是科学的精神吧一个人提出一个观点虽然有点问题可是大家受到他的启发通过论证而最终得到了答案。转载于:https://www.cnblogs.com/dmesg/archive/2009/08/02/1536997.html
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/85580.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!