Exponentiation
来源:互联网 发布:apache url rewrite 编辑:程序博客网 时间:2024/05/16 08:08
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 120.4321 205.1234 156.7592 998.999 101.0100 12
Sample Output
548815620517731830194541.899025343415715973535967221869852721.0000000514855464107695612199451127676715483848176020072635120383542976301346240143992025569.92857370126648804114665499331870370751166629547672049395302429448126.76412102161816443020690903717327667290429072743629540498.1075960194566517745610440100011.126825030131969720661201
HINT
#include<iostream>#include<string.h>using namespace std;int main(){char str[1000],a[1000],a1[1000];int c;int n,i,j,k,t,x,num,t1,t2,y,y1,y2;while(cin>>str>>n){x=0;num=0;t=strlen(str);for(i=0;i<t;i++){if(str[i]=='.'){num=t-1-i;i++;}a[x]=str[i];a1[x++]=str[i];}a[x]='\0';a1[x]='\0';num*=n;int x1=x;for(i=0;i<n-1;i++){int sum[1000]={0};t1=999;t2=999;for(j=x-1;j>=0;j--){for(k=x1-1;k>=0;k--)sum[t1--]+=((a[j]-'0')*(a1[k]-'0'));t2--; t1=t2;} c=0;for(y=999;y>=0;y--){sum[y]+=c;c=0;if(sum[y]>9){c=sum[y]/10;sum[y]=sum[y]%10;}}for(y1=0;y1<1000;y1++){if(sum[y1]!=0)break;}x1=0;for(y2=y1;y2<1000;y2++)a1[x1++]=sum[y2]+'0';a1[x1]='\0';}if(num==0)cout<<a1<<endl;else{t=strlen(a1);if(a1[t-1]=='0')//若(2.0, 2)则输出4而不是4.00,多余的零去掉{for(i=t-1;i>=0;i--){if(a1[i]!='0')break;num--;//小数点的位数}t=i+1;}for(i=0;i<t-num;i++)cout<<a1[i];//输出小数点之前的cout<<".";while(num>t-i)//若整数部分为0,小数部分不够填补小数点后的位数0{cout<<"0";num--;}for(j=i;j<t;j++)cout<<a1[j];//输出小数点后的cout<<endl;}}return 0;}
- Exponentiation
- Exponentiation
- Exponentiation
- Exponentiation
- Exponentiation
- Exponentiation
- Exponentiation
- Exponentiation
- Exponentiation
- Exponentiation
- Exponentiation
- Exponentiation
- 1001 Exponentiation
- 1001 Exponentiation
- 1001 Exponentiation
- pku1001 Exponentiation
- acm1001 Exponentiation
- 1001 Exponentiation
- DEM 三维地形处理之一:创建三维地形的源数据之地形高程DEM数据和纹理贴图数据
- 设计模式之(Iterator)迭代器模式
- 简单的Linux驱动
- spring事务管理注意事项
- C++: delete与内存泄露
- Exponentiation
- windows+Python+virtualenv 环境配置
- 十二国记 台词
- Java对象的生命周期与垃圾回收以及四种引用
- 产品经理需要克服哪些陋习 ?
- Hadoop读书笔记(九)MapReduce计数器
- WebService简单了解
- 假设一个文本文件中保存着100个整数,请将这100个整数按从小到大的顺序写到另一个文件中
- Java并发3——同步