Power of Cryptography
//只用一行核心代码就可以过的天坑题目............= =
题目:
Description
This problem involves the efficient computation of integer roots of numbers.
Given an integer n>=1 and an integer p>= 1 you have to write a program that determines the n th positive root of p. In this problem, given such integers n and p, p will always be of the form k to the n th. power, for an integer k (this integer is what your program must find).
Input
Output
Sample Input
2 16 3 27 7 4357186184021382204544
Sample Output
4 3 1234
#include<iostream> #include<cmath> using namespace std; int main() {double n,p;while(cin>>n>>p){cout<<pow(p,1/n)<<endl;}return 0; }
1 #include <stdio.h> 2 #include <string.h> 3 4 // 交换字符串函数 5 void swap_str(char str[]) { 6 int len = strlen(str); 7 for (int i=0; i<len/2; i++) { 8 int tmp = str[i]; 9 str[i] = str[len-i-1]; 10 str[len-i-1] = tmp; 11 } 12 } 13 14 // 大数与整型相乘函数(大数以字符串形式给出) 15 void my_mul(char str[], int x) { 16 int len = strlen(str); 17 int cp = 0, i, tmp; 18 swap_str(str); 19 for (i=0; i<len; i++) { 20 tmp = (str[i]-'0')*x + cp; 21 str[i] = (tmp%10) + '0'; 22 cp = tmp / 10; 23 } 24 while (cp) { 25 str[i++] = (cp%10) + '0'; 26 cp /= 10; 27 } 28 while ('0'==str[i-1] && i>1) 29 i--; 30 str[i] = '\0'; 31 swap_str(str); 32 } 33 // 比较两个大数的大小(大数前没有0) 34 int my_numCmp(char str1[], char str2[]) { 35 int len1, len2; 36 len1 = strlen(str1); 37 len2 = strlen(str2); 38 if (len1 > len2) 39 return 1; 40 if (len1 < len2) 41 return -1; 42 return strcmp(str1, str2); 43 } 44 45 // 字符串存储开方结果 46 void my_pow(char str[], int k, int n) { 47 str[0] = '1', str[1] = '\0'; 48 while (n--) { 49 my_mul(str, k); 50 } 51 } 52 53 // 二分查找正确答案 54 int my_binary_search(int n, char str[]) { 55 int high = 1e9, low = 0; 56 int mid; 57 char tot[2005]; 58 59 while (low < high) { 60 mid = low + (high-low)/2; 61 my_pow(tot, mid, n); 62 int tmp = my_numCmp(tot, str); 63 if (0 == tmp) 64 return mid; 65 if (tmp < 0) 66 low = mid + 1; 67 else 68 high = mid; 69 } 70 return mid; 71 } 72 73 int main() { 74 char str[105]; 75 int n; 76 while (scanf("%d%s", &n, str) != EOF) { 77 printf("%d\n", my_binary_search(n, str)); 78 } 79 return 0; 80 }
代码来源:http://blog.csdn.net/zcube/article/details/8545523
转载于:https://www.cnblogs.com/teilawll/p/3204786.html
Power of Cryptography相关推荐
- poj 2109 Power of Cryptography
Power of Cryptography Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 18408 Accepted: ...
- 113 - Power of Cryptography 浮点数 pow()函数
uva oj 上的一题. 113 - Power of Cryptography 就是给个 n 1<=n<=200 和 p 1<=p<10^101求个 k 1<=k< ...
- POJ2109 Power of Cryptography
POJ2109 Power of Cryptography 贪心神题 题意 题解 提交代码 错误解法(不知道错在哪里) 错误代码 题意 这题是一个贪心神(经病)题. 众所周知,如果有x^n=p,那么如 ...
- poj2109 Power of Cryptography(数学题)
题目链接:http://poj.org/problem? id=2109 --------------------------------------------------------------- ...
- poj2109 Power of Cryptography
2017-10-6 解答 不知道为什么float就compile error了,关于浮点数... 代码 #include <iostream> #include <cmath> ...
- NKU 专题一 题解
A - Flip Game 总的情况数只有2^16次方种,显然直接bfs就可以了 1 #include<iostream> 2 #include<queue> 3 #inclu ...
- Competitive Programming 3题解
题目一览: Competitive Programming 3: The New Lower Bound of Programming Contests(1) Competitive Programm ...
- AOAPC I: Beginning Algorithm Contests 题解
AOAPC I: Beginning Algorithm Contests 题解 AOAPC I: Beginning Algorithm Contests (Rujia Liu) - Virtual ...
- π-Algorithmist分类题目(3)
原题网站:Algorithmist,http://www.algorithmist.com/index.php/Main_Page π-Algorithmist分类题目(3) Probability ...
最新文章
- 600页!分享珍藏很久的《推荐系统学习手册》(附链接)
- referenced from 异常
- linux内核网络协议栈--数据包的接收流程(二十三)
- 系统设计说明书案例_案例 | 太阳能+热泵枸杞烘干系统设计及经济性分析
- JVM系列之:Contend注解和false-sharing
- Allegro padstack
- python计算入门_Python入门教程02-01(计算机核心基础)
- 简明易懂的call apply
- mysql utf-8长度_MySQL VARCHAR长度和UTF-8?mysql
- sql etl_使用SQL TRY函数进行ETL优化
- scala构造器的介绍
- php 截取字符串的方法,php截取字符串方法有哪些
- 三维地图下载,3D地图下载,谷歌地球三维地形图查看
- Windows安全机制---数据执行保护:DEP机制
- 移动修改服务器密码是什么,移动服务器密码
- 小米手机开机自启动软件及定时开关机
- 全面云化的变革悄然而至,IPLOOK助力加速云网融合
- 【深度好文】python加速库cython简介
- 【Linux】Linux 开放端口
- 读书笔记软件调试之道 :问题的核心-诊断