<hdu - 1600 - 1601> Leftmost Digit && Rightmost Digit 数学方法求取大位数单位数字
1060题意很简单,求n的n次方的值的最高位数,我们首先设一个数为a,则可以建立一个等式为n^n = a * 10^x;其中x也是未知的;
两边取log10有:lg(n^n) = lg(a * 10^x);
即:n * lg(n) - x = lg(a);
现在就剩x一个变量了,我们知道x是值n^n的位数-1,a向下取整就是我们要求的数;
所以 按着上面的推导式翻译成代码就可以了(注意:数值的范围和之间的强制转换):
/*
* > File Name: 1060.cpp
* > Author: Ddlm2wxm
* > Mail: Ddlm2wxm@163.com
* > Created Time: Wed 23 Nov 2016 09:36:14 PM CST
***************************************************************/ #include<iostream>
#include<cmath>
#include <cstdio>
using namespace std; typedef long long ll;
typedef long double ld; int main() {
int n;
ll num, ans;
ld t;
scanf("%d", &n);
while (n--) {
scanf("%lld", &num);
t = num * log10(num);
ans = pow (, (t - (ll)t));
printf("%lld\n", ans);
}
return ;
}
1060
1061和1060题意一样,只不过这道题是要求最低位上即个位上的数.在之间循环的时候有一些技巧:
①如果是偶数的话,直接第一次循环n * n % 10,然后更换n的值为n * n % 10;这样下一次乘的时候就是两个n和两个n来相乘了,所以我们需要另外找一个变量来进行n的减半操作;循环到底即可。
②如果是奇数的话,在进行减半操作之后,就会变成(n - 1) / 2的数,自然就会少一次n,所以我们需要当n为奇数时候使用res记录一下n的值。循环到底即可。
闲话不多说,上代码:
/*
* > File Name: 1061.cpp
* > Author: Ddlm2wxm
* > Mail: Ddlm2wxm@163.com
* > Created Time: Wed 23 Nov 2016 09:40:03 PM CST
*****************************************************************/ #include <iostream>
#include <algorithm>
#include <string>
#include <cstring>
#include <cstdio>
using namespace std; int mod_exp (int n) {
int res = , t = n % , b = n;
while (b) {
if (b & ) {
res *= t;
res %= ;
}
t *= t;
t %= ;
b >>= ;
}
return res;
} int main() {
int T, n;
scanf ("%d", &T);
while (T--) {
scanf ("%d", &n);
cout << mod_exp (n) << endl;
}
return ;
}
1061
欢迎码友一起评论更简单的方法,一起成长。
<hdu - 1600 - 1601> Leftmost Digit && Rightmost Digit 数学方法求取大位数单位数字的更多相关文章
- Rightmost Digit(快速幂+数学知识OR位运算) 分类: 数学 2015-07-03 14:56 4人阅读 评论(0) 收藏
C - Rightmost Digit Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit ...
- HDU 1061 Rightmost Digit --- 快速幂取模
HDU 1061 题目大意:给定数字n(1<=n<=1,000,000,000),求n^n%10的结果 解题思路:首先n可以很大,直接累积n^n再求模肯定是不可取的, 因为会超出数据范围, ...
- HDU Rightmost Digit
Rightmost Digit Time Limit:1000MS Memory Limit: ...
- 题解报告:hdu 1061 Rightmost Digit(快速幂取模)
Problem Description Given a positive integer N, you should output the most right digit of N^N. Input ...
- 快速幂 HDU 1061 Rightmost Digit *
Rightmost Digit Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)T ...
- HDOJ 1061 Rightmost Digit
找出数学规律 原题: Rightmost Digit Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Ja ...
- Rightmost Digit
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission( ...
- hdoj 1061 Rightmost Digit【快速幂求模】
Rightmost Digit Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)T ...
- HDOJ 1061 Rightmost Digit(循环问题)
Problem Description Given a positive integer N, you should output the most right digit of N^N. Input ...
随机推荐
- CSS中文字体的英文名称 – 前台开发必备
做什么用的?写过CSS的都晓得,一般用在font-family后面——为什么不用中文呢?有过一定开发经验的都晓得CSS里面用中文也是会乱码的,特别是没有中文字符集的浏览器,直接成了框框,用英文就可以解 ...
- 高级SQL特性
SQL SQL 必知必会·笔记<20>高级SQL特性 摘要: 约束(constraint)就是管理如何插入或处理数据库数据的规则.DBMS通过在数据库表上施加约束来实施引用完整性.1. ...
- jQuery插件综合应用1
jQuery插件综合应用(一)注册 一.介绍 注册和登录是每个稍微有点规模的网站就应该有的功能.登陆功能与注册功能类似,也比注册功能要简单些.所以本文就以注册来说明jQuery插件的应用. jQu ...
- asp.net mvc框架的一些切入点
IhttpModule+配置文件,对请求进行进一步的整理.过滤与转发: global文件中以Application_xx的保护方法进行切入的方式,此方法等同于IHttpModule方法.IHttpMo ...
- javascript call()函数
js中的call()函数,简单的说就是用来纠正指正的吧! 调用一个对象的方法,用另一个对象替换当前对象,这样说显得相当的空洞与抽象,实例说明一切! <script type="text ...
- WCF客户端与服务端通信简单入门教程
服务端 1.新建空白解决方案,然后再空白解决方案中新建:WCF服务应用程序.建完后如图: 2.删掉自动生成的IService1.cs和Service.svc并添加WCF服务文件StudentServi ...
- linux下http服务器开发
linux下http服务器开发 1.mystery引入 1)超文本传输协议(HTTP)是一种应用于分布式.合作式.多媒体信息系统的应用层协议 2)工作原理 1)客户端一台客户机与服务器建立连接后,会发 ...
- javascript操作写入txt文件及消息: Automation 服务器不能创建对象问题
简单的写入txt代码: function WriteTxt() { var fso, tf; fso = new ActiveXObject("Scripting.Fil ...
- 横瓜从WP7与WP8不兼容之处预测微软公司在未来20年将会倒闭
横瓜(601069289) 12:40:50 微软频繁升级操作系统版本捞钱,还不向下兼容,其企业的核心竞争力不再是技术,是钱!除了操作系统,其它产品没有任何核心技术和竞争力,微软必死. 横瓜从WP7 ...
- C语言相关的经典书籍(附Ebook)
个人稍微分了一下类,有的看过,有的听人“传说过”,欢迎大家补充和共同学习. 真心经典:每个行业或者领域都有一些东西是不会随时间而逐渐消逝,以下的就是. <C语言程序设计>(第2版.新版) ...