博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OpenJudge1001Exponentiation
阅读量:5257 次
发布时间:2019-06-14

本文共 2326 字,大约阅读时间需要 7 分钟。

问题描述

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 Rnwhere R is a real number ( 0.0 < R < 99.999 ) and n is an integer such that 0 < n <= 25.

要求

输入
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.
输出
The output will consist of one line for each line of input giving the exact value of R^n. Leading zeros should be suppressed in the output. Insignificant trailing zeros must not be printed. Don't print the decimal point if the result is an integer.

思路

本题为高精度计算问题,需要将输入的字符串转换为数组,按照四则运算的方式进行运算,具体代码如下所示:

1 #include
2 #include
3 #include
4 5 using namespace std; 6 7 struct bign{ 8 int data[1000]; 9 int length; 10 int point; 11 bign(){ 12 memset(data, 0, sizeof(data)); 13 length = 0; 14 point = 0; 15 } 16 }; 17 18 string str; 19 int n; 20 21 bign Change(){ 22 bign a; 23 a.point = str.length() - str.find('.') - 1; 24 int j = 0; 25 for(unsigned int i=0;i
=zero;i--){ 82 if(zero==rs.point){ 83 ans.insert(ans.end(), rs.data[i] + '0'); 84 } 85 else{ 86 if(i==rs.point){ 87 ans.insert(ans.end(), rs.data[i] + '0'); 88 ans.insert(ans.end(), '.'); 89 } 90 else{ 91 ans.insert(ans.end(), rs.data[i] + '0'); 92 } 93 } 94 } 95 } 96 else{ 97 ans.insert(ans.end(), '.'); 98 for(int i=rs.point-1;i>=zero;i--){ 99 ans.insert(ans.end(), rs.data[i] + '0');100 }101 }102 cout<
<
>str>>n){107 bign bg = Change();108 bign rs = power(bg, n);109 show(rs);110 }111 return 0;112 }
View Code

 在解题过程中,遇到的是尾部零处理和首部零处理问题,要注意的是,除了题中所给的样例,10.00之类的幂次需要考虑,这类测试数据,在尾部零处理中,不应该含小数点。

 

转载于:https://www.cnblogs.com/sgatbl/p/9420701.html

你可能感兴趣的文章
ajax获取值的两种方法
查看>>
电梯调度实施
查看>>
【POJ】3667 Hotel
查看>>
static 成员变量以及static成员函数
查看>>
Http
查看>>
2017.9.15 mybatis批量插入后实现主键回填
查看>>
如何设置Jquery UI Menu 菜单为横向展示
查看>>
git操作图
查看>>
C++编程思想3-利用C++进行文件操作封装C函数
查看>>
Angular中使用Swiper不能滑动的解决方法
查看>>
MySQL Server 5.5安装中遇到的问题及解决方法
查看>>
asp数据查询及数据筛选
查看>>
Bootstrap模态框水平垂直居中与增加拖拽功能(转)
查看>>
No.2 两数相加 Add Two Numbers
查看>>
ADB常用命令(二)
查看>>
@property里assgin 、copy、strong的区别
查看>>
6.18 考试总结
查看>>
nodejs-Buffer
查看>>
js 随机数
查看>>
华为2017软件精英挑战赛初赛源码
查看>>