ACM_求N^N的最高位数
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的最左边的数字。
Sample Input:
2
3
4
Sample Output:
2
2
解题思路:对一个数N,用科学计数法表示为N=a*10^m,此时a的整数部分即为N的最高位数字,N^N的最左边的数字a即为题目所求。
所以N^N=a*10^m,两边取对数得N*lg(N)=m+lg(a);因为0<a<10,所以0<lg(a)<1,令x=lg(a)+m(m为x的整数部分),x=N*lg(N);
则a=10^(x-m)=10^(x-(int)x),注意这里的N最大为10^4,即x=N*lg(N)=4*10^4,x小于int范围内,所以x强转为int即为m,最后输出(int)a整数部分即可。
pow(x,y)函数计算x的y次幂。
AC代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int T,N;
while(cin>>T){
while(T--){
cin>>N;
double x=N*log10(N);
double g=x-(int)x;
cout<<(int)pow(,g)<<endl;
}
}
return ;
}
加强版(涉及推导数论知识)详解看这里:ACM_求N^N的前5位数和后5位数(数论)
ACM_求N^N的最高位数的更多相关文章
- OpenJudge计算概论-求满足条件的3位数
/*======================================================================== 求满足条件的3位数 总时间限制: 1000ms 内 ...
- Python3练习题 001:4个数字求不重复的3位数
#Python练习题 001:4个数字求不重复的3位数#方法一import itertoolsres = [][res.append(i[0]*100 + i[1]*10 + i[2]) for i ...
- ACM_求N^N的前5位数和后5位数(数论)
NNNNN Time Limit: 2000/1000ms (Java/Others) Problem Description: 对于整数N,求N^N的前5位和后5位(1057题加强版) Input: ...
- Openjudge-计算概论(A)-求满足条件的3位数
描述: 编写程序,按从小到大的顺序寻找同时符合条件1和2的所有3位数,条件为: 1.该数为完全平方数 2.该数至少有2位数字相同 例如,100同时满足上面两个条件. 输入输入一个数n,n的大小不超过实 ...
- ACM_求第k大元素(两次二分)
求第k大 Time Limit: 6000/3000ms (Java/Others) Problem Description: 给定两个数组A和B,大小为N,M,每次从两个数组各取一个数相乘放入数组C ...
- ACM_求补集的交集
求补集的交集 Time Limit: 2000/1000ms (Java/Others) Problem Description: 给定一个集合,然后再给出两个该集合的子集,求他们对应补集的交集. I ...
- ACM_求f(n)
求f(n) Time Limit: 2000/1000ms (Java/Others) Problem Description: 设函数f(n)=1*1*1+2*2*2+3*3*3+...+n*n*n ...
- ACM_求交集
求交集 Time Limit: 2000/1000ms (Java/Others) Problem Description: 输入集合A和B,按大小顺序输出A和B的交集. Input: 输入包含多组测 ...
- Python练习题 001:4个数字求不重复的3位数
听说做练习是掌握一门编程语言的最佳途径,那就争取先做满100道题吧. ----------------------------------------------------------------- ...
随机推荐
- Spark SQL数据载入和保存实战
一:前置知识具体解释: Spark SQL重要是操作DataFrame,DataFrame本身提供了save和load的操作. Load:能够创建DataFrame. Save:把DataFrame中 ...
- uva 10069 Distinct Subsequences 【dp+大数】
题目:uva 10069 Distinct Subsequences 题意:给出一个子串 x 和母串 s .求子串在母串中的不同序列的个数? 分析:定义dp[i][j]:x 的前 i 个字母在 s 的 ...
- 将Python打印的内容进行高亮的输出
将打印的内容进行高亮的显示 内容: 格式: echo "\033[字背景颜色;字体颜色m字符串\033[0m" 例如: "\033[41;36m something he ...
- 【Mongodb教程 第五课 】MongoDB 删除集合
drop() 方法 MongoDB 的 db.collection.drop() 是用来从数据库中删除一个集合. 语法: drop() 命令的基本语法如下 db.COLLECTION_NAME.dro ...
- udhcp详解源码(序)
最近负责接入模块,包括dhcp.ipoe和pppoe等等.所以需要对dhcp和ppp这几个app的源代码进行一些分析.网上有比较好的文章,参考并补充自己的分析. 这篇udhcp详解是基于busybox ...
- NYOJ1026 阶乘末尾非0 【模板】
阶乘末尾非0 时间限制:2000 ms | 内存限制:65535 KB 难度:3 描写叙述 我们的问题非常是简单.n! 末尾非0数是几? 比方n=5的时候,n! =120,那么n!末尾非0数是2. ...
- Linux上ln命令详细说明及软链接和硬链接的区别
硬链接(hard link) UNIX文件系统提供了一种将不同文件链接至同一个文件的机制,我们称这种机制为链接.它可以使得单个程序对同一文件使用不同的名字.这样的好处是文件系 统只存在一个文件的副本, ...
- python和python3
1 安装python和python3的方法 如果是python,那么直接python setup.py install; 如果是python3,那么直接python3 setup.py install ...
- Installing Node.js via package manager
https://nodejs.org/en/download/package-manager/
- js连等运算
1.var a = b = 20; 连等的第二个变量属于全局变量2.a.x = a = {n:2}; 连等是从右往左执行的3.a.x = a = {n:2}; js语句执行前会保存之前的索引