nyoj 841-最高位数字
来源:互联网 发布:leetcode中文版 java 编辑:程序博客网 时间:2024/06/09 19:56
http://acm.nyist.net/JudgeOnline/problem.php?pid=841
最高位数字
时间限制:1000 ms | 内存限制:65535 KB
难度:2
- 描述
- 求N^N的个位数字大家应该都会了,可是,N^N的最高位数字你会求吗?
- 输入
- 多组测试数据。
每组数据输入一个正整数N(N≤1,000,000,000)。 - 输出
- 对于每组数据,输出N^N的最高位数字。
- 样例输入
34
- 样例输出
22
数学题目:
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的最高位即为结果(因为0<=fractpart<1,所以1<=10^fractpart<10,所以10^fractpart的整数部分就是答案)
#include<iostream>#include<cmath>using namespace std;double solve(double n) { double inpart, fractpart, t; fractpart = modf(n * log10(n), &inpart); //double modf (double, double*); //将参数的整数部分通过指针回传, 返回小数部分 t = pow(10, fractpart); modf(t, &inpart); //inpart是得到整数部分 return inpart;} int main() { int n; while (cin >> n) cout << solve(n) << endl;}
double modf (double, double*); 返回值是小数部分,里面的值是整数部分
1 0
- nyoj 841-最高位数字
- Nyoj 841 最高位数字
- NYOJ-最高位数字
- 最高位数字
- 最高位数字
- nyoj841最高位数字
- 最高位数字
- 1033 计算最高位数字
- 求n!的最高位数字
- NYOJ841---最高位数字&&最低位&&数论常见函数
- hdu1060(计算n^n最高位的数字)
- 获取一个数字的最高位的几种算法。
- 实现N的N次方求其最高位数字
- 【NYOJ】最高奖学金
- N!的最高位
- 阶乘的最高位
- msb - 最高有效位
- HDU Leftmost Digit(求n^n最高位的数字)
- ASP.NET TreeView 虚线断断续续
- 黑马程序员---JAVA基础加强(十八)
- 如何更换天籁车钥匙电池
- tomcat服务器使用get方式请求时参数乱码问题解决
- 构造函数初始化列表
- nyoj 841-最高位数字
- Linux之全系统备份恢复
- 我的2013:从北京到石家庄的软件开发历程
- Java中文与ASCII码的转换
- linux 定时任务
- Rotating Sentences
- 如何实现过滤式的JComboBox
- 常用索引类型查询语句
- UML 类图