Problem F: Exponentiation
Problem F: Exponentiation
Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 4 Solved: 2
[Submit][Status][Web Board] [Edit] [TestData]
Description
Problems involving the computation of exact values of very large magnitude and precision are common. For example, the computation of the national debt is a taxing experience for many computer systems.
This problem requires that you write a program to compute the exact value of Rn where R is a real number ( 0.0 < R < 99.999) and n is an integer such that $0 < n \le 25$.
Input
The input will consist of a set of pairs of values for R and n. The R value will occupy columns 1 through 6, and the n value will be in columns 8 and 9.
Output
The output will consist of one line for each line of input giving the exact value of Rn. Leading zeros and insignificant trailing zeros should be suppressed in the output.
Sample Input
95.123 12
0.4321 20
5.1234 15
6.7592 9
98.999 10
1.0100 12
Sample Output
548815620517731830194541.899025343415715973535967221869852721
.00000005148554641076956121994511276767154838481760200726351203835429763013462401
43992025569.928573701266488041146654993318703707511666295476720493953024
29448126.764121021618164430206909037173276672
90429072743629540498.107596019456651774561044010001
1.126825030131969720661201
主要思路是:几的几次方。实际上也就是大数相乘,先把小数点去掉,然后相乘,最后再把小数点加上。比如说的 a 的 n 次方,那先把字符数组a里面的东西,赋值给字符数组b,然后 a 和 b 进行运算,乘的结果放到sum数组里,然后整型的 sum 数组里的每个元素转换成字符型的,赋值给字符数组b,然后再和 a数组运算,运算的次数和你输入的几次方有关系。。然后再进行细节方面的问题……
#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
int main()
{
char a[];
char b[];//和字符数组a一样的
int n,i,j,k,lena,lenb,g,g1,h,ji1,ji2;
int sum[];
char s[];
while(scanf("%s%d",&a,&n)!=EOF)
{
if(n==)
cout<<a<<endl;
else
{
int count=;
memset(sum,,sizeof(sum));
lena=strlen(a);
for(i=;i<lena;i++)
{
if(a[i]=='.')
{
count=lena-i-;//小数点后面几位
for(j=i;j<lena-;j++)
{
a[j]=a[j+];
}
a[j]='\0';
lena--; //变成没有小数点的数
break;
}
}
count=count*n;//经过处理小数点最终有count位
for(i=;i<lena;i++)
{
b[i]=a[i];
}
b[i]='\0';
lenb=strlen(b);
for(i=;i<=n-;i++)
{
memset(sum,,sizeof(sum));
g=;g1=;
for(j=lenb-;j>=;j--)//下面的乘数
{
for(k=lena-;k>=;k--)//上面的乘数
{
sum[g--]+=(a[k]-'')*(b[j]-'');
}
g1--;
g=g1;
}
for(k=;k>=;k--)
{
sum[k-]+=sum[k]/;
sum[k]=sum[k]-sum[k]/*;
}
int start=;
int l=;
while(!sum[start] &&start<=)
start++;
for(h=start;h<=;h++)
{
b[l++]=sum[h]+'';
}
b[l]='\0';
lenb=strlen(b);
}
if(count!=)
{
for(g=;g<=;g++)
s[g]=sum[g]+'';
s[]='\0';
for(i=;i>-count;i--)
s[i+]=s[i];
s[i+]='.';
for(i=;i<=;i++)
{
if(s[i]!='')
{
ji1=i;
break;
}
}
for(i=;i>=;i--)
{
if(s[i]!='')
{
ji2=i;
break;
}
}
for(i=ji1;i<=ji2;i++)
cout<<s[i];
cout<<endl;
}
else
cout<<b<<endl;
}
}
return ;
}
Problem F: Exponentiation的更多相关文章
- Problem F: Exponentiation大数求幂
DescriptionProblems involving the computation of exact values of very large magnitude and precision ...
- 实验12:Problem F: 求平均年龄
Home Web Board ProblemSet Standing Status Statistics Problem F: 求平均年龄 Problem F: 求平均年龄 Time Limit: ...
- The Ninth Hunan Collegiate Programming Contest (2013) Problem F
Problem F Funny Car Racing There is a funny car racing in a city with n junctions and m directed roa ...
- Codeforces Gym 100500F Problem F. Door Lock 二分
Problem F. Door LockTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100500/at ...
- Codeforces Gym 100002 Problem F "Folding" 区间DP
Problem F "Folding" Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/ ...
- Codeforces Gym 100286F Problem F. Fibonacci System 数位DP
Problem F. Fibonacci SystemTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudg ...
- Problem F: 合唱比赛开始了!
Problem F: 合唱比赛开始了! Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 440 Solved: 201[Submit][Status][ ...
- 几何入门合集 gym101968 problem F. Mirror + gym102082 Problem F Fair Chocolate-Cutting + gym101915 problem B. Ali and Wi-Fi
abstract: V const & a 加速 F. Mirror 题意 链接 问题: 有n个人在y=0的平面上(及xoz平面).z=0平面上有一面镜子(边平行于坐标轴).z=a平面上有q个 ...
- Problem F Plug It In!
题目链接:https://cn.vjudge.net/contest/245468#problem/F 大意:给你插座和电器的对应关系,有多个电器对应一个插座的情况,但是一个插座只能供一个电器使用,现 ...
随机推荐
- DELL服务器安装Windows server 2003---解决找不到安装在计算机上的硬盘驱动器 安装无法
安装Windows server 2003系统,本以为改改BIOS配置“改为从光驱启动优先”很容易搞定的.没想到系统安装过程中碰到“找不到安装在计算机上的硬盘驱动器安装无法继续,要退出请按F3”问题, ...
- _sortBy用法
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- opencv 中cvZero()的使用
cvZero(CvArr* ar); // 是让矩阵的值都为0,有初始化的作用, Eg: IplImage img=cvCreateImage(cvSize(640,480),IPL_DEPTH_ ...
- 新辰:4G时代怎样利用手机进行移动APP营销?
未来的时代是4G时代,新辰手机用户的搜索量不在电脑端之下.那么,我们要怎样用手机进行营销呢?手机站点的竞价文章,要怎样去写比較好?手机站点要做专题吗?手机站点的优化思路在哪里?手机的系统不同,在不同的 ...
- web - float , 浮动
浮动 : 使元素脱离文档流,按照指定的方向发生移动,遇到父级边界或者相邻的浮动元素则停下来: 元素被设置浮动属性后,呈现的特征有: 1.多个块可以在一行显示 2.内联元素支持狂傲 3.默认宽度由内容撑 ...
- 基于Nodejs开发的web即时聊天工具
由于公司需要开发web即时聊天的功能,开始时我们主要的实施方法是用jquery的ajax定时(10秒)轮询向服务器请求,由于是轮询请求,对 服务器的压力比较大.我们网站上线的时间不长,访问量不是很大, ...
- 转载 LayoutInflater的inflate函数用法详解
http://www.open-open.com/lib/view/open1328837587484.html LayoutInflater的inflate函数用法详解 LayoutInflater ...
- The Rose
Some say love it is a river 有人说爱是一条河 that drowns the tender reed 会淹没轻柔的芦苇 Some say love it is a razo ...
- ASP.NET MVC+Entity Framework 4.1访问数据库
Entity Framework 4.1支持代码优先(code first)编程模式:即可以先创建模型类,然后通过配置在EF4.1下动态生成数据库. 下面演示两种情形: 1.代码优先模式下,asp.n ...
- ASP.Net中使用Report Service
昨天研究以下Report Service,发现SQL Service自带的报表服务器也非常强大, 一,报表在不同的应用中表现形式 参考:http://www.cnitblog.com/yide/arc ...