BUPT2017 wintertraining(15) #6A

题意

求\(R^n\) ( 0.0 < R < 99.999 )(0 < n <= 25)

题解

将R用字符串读进来,找到小数点的位置,然后转为整数。

用高精度乘法和快速幂计算。输出时要确定一下小数点的位置。

代码

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <iostream>
using namespace std;
const int base=10;
struct Num{
int a[1000],len;
Num(){memset(a,0,sizeof a);}
void input(int b){
int i;
if(b==0)len=1;
for(i=0;b;i++){
a[i]=b%base;
b/=base;
}
len=i;
}
void output()const {
for(int i=len-1;i>=0;i--){
printf("%d",a[i]);
}
puts("");
}
Num operator *(const Num &b)const{
Num c;
for(int i=0;i<len;i++)
for(int j=0;j<b.len;j++){
c.a[i+j]+=a[i]*b.a[j];
}
c.len=len+b.len-1;
for(int i=0;i<c.len;i++){
if(c.a[i]>=base){
c.a[i+1]+=c.a[i]/base;
c.a[i]%=base;
}
}
if(c.a[c.len])c.len++;
return c;
}
};
char s[1000],ans[1000];
int d;
Num qpow(Num n,int d){
Num ans;ans.input(1);
while(d){
if(d&1)ans=ans*n;
n=n*n;
d>>=1;
}
return ans;
}
int main() {
while(cin>>s>>d){
int i,j,b=0;
for(i=0;s[i];i++){
if(s[i]=='.'){j=i;}
else b=b*10+s[i]-'0';
}
int l=(i-j-1)*d;
Num c;c.input(b);
c=qpow(c,d);
for(i=c.len-1;i>=l;i--){
printf("%d",c.a[i]);
}
for(j=0;c.a[j]==0;j++); if(i>j)printf(".");
for(i=l-1;i>=j;i--)printf("%d",c.a[i]);
puts("");
}
return 0;
}

最新文章

  1. PowerShell脚本自动设置安卓手机wifi代理
  2. 浅析word-break work-wrap区别
  3. Xcode 升级成Xcode 8 版本以后,出现 Signing for &quot;sqlite3--test&quot; requires a development team. 问题的解决
  4. c/c++ 常用的几个安全函数
  5. C#语法需要注意的地方
  6. 传智播客 Html基础知识学习笔记
  7. java_maven_linux_windows下项目运行jar
  8. ibatis实战之一对多关联
  9. php UNIX时间戳转换为指定日期格式
  10. 【转载】stm32定时器-----珍藏版
  11. Hadoop(四)HDFS集群详解
  12. Spark性能调优之解决数据倾斜
  13. [BZOJ1014] [JSOI2008] 火星人prefix (splay &amp; 二分答案)
  14. bootstrap的ajax提交
  15. PyCharm 2018.1破解过程
  16. K邻近回归算法
  17. js DOM操作 容易犯的错误
  18. 自定义django的admin后台action
  19. 4.three.js中的坐标系
  20. Easy WordPress Updates: Store FTP Info in wp-config.php

热门文章

  1. Mergeable Stack(链表实现栈)
  2. git repository description
  3. Ubuntu16系统中安装htpasswd
  4. 解决多人开发时使用window.onload的覆盖问题
  5. 理解npm、nvm、nodejs之间的关系
  6. 【Java基础】求出1-100之间偶数和
  7. mybtis逆向工程实战教程--条件查询
  8. AngularJS 中的 factory、 service 和 provider区别,简单易懂
  9. windows浏览器访问虚拟机开的rabbitmq服务,无法访问
  10. python(Django之Logging、API认证)