nyoj841最高位数字

来源:互联网 发布:fm自建球员数据锁定 编辑:程序博客网 时间:2024/06/08 13:21
题目链接:http://115.159.40.116/problem_show.php?pid=5409
http://acm.nyist.net/JudgeOnline/problem.php?pid=841

题目描述

求N^N的个位数字大家应该都会了,可是,N^N的最高位数字你会求吗?

输入

多组测试数据。
每组数据输入一个正整数N(N≤1,000,000,000)。

输出

对于每组数据,输出N^N的最高位数字。

样例输入

34

样例输出

22

AC代码:

/*先计算log10(m^m),即ans=m*log10(m),把ans分为小数部分与整数部分,然后pow(10,ans)=pow(10,整数部分)*pow(10,小数部分)而10^整数时,其最高位一定为1,所以求出pow(10,小数部分)的最高位即可*/#include <stdio.h>#include <math.h>int main() {double m, interger;while(~scanf("%lf", &m)) {//modf()将一个小数的整数部分与小数部分分离,返回值是小数,得到的整数会存入第二个参数m = modf(m*log10(m), &interger);//  @ m = pow(10,m);modf(m, &interger);//可能会有疑问,你就知道m一定>1? 就这么直接输出?//因为方程y=10^m必定过(0,1),m>0时y一定大于1,显然@处的m>0 printf("%d\n", (int)interger);}return 0;}


1 0
原创粉丝点击