poj1001
- #include <iostream>
- #include<iomanip>
- #include<cstring>
- using namespace std;
- int s;
- void chen(char a[],char b[])//a=a*b
- { int i,j,k,l,sum,c[]={};
- l=strlen(a)+strlen(b);
- for(i=strlen(b)-;i>=;i--)
- for(j=strlen(a)-,k=i+j+;j>=;j--,k--)
- { sum=(b[i]-'')*(a[j]-'')+c[k];
- c[k]=sum%;c[k-]+=sum/;
- }
- for(i=c[]?:,j=;i<l;i++)
- a[j++]=(c[i]+''); a[j]=;
- }
- void quw0(char a[]) //去除尾部多余的零
- { int i=strlen(a)-;
- while(a[i]=='') {a[i]=;i--;}
- }
- void jilu(char a[])
- { int i,t;
- for(i=;i<strlen(a);i++) //判断有没有小数点
- if(a[i]=='.') break;
- if(i!=strlen(a)) //有小数点
- {
- for(i=strlen(a)-,s=;i>=;i--)// s记录小数位数
- if(a[i]!='.') s++;
- else break;
- if(a[i=]=='') // 0.0123变成123
- { for(i=;i<strlen(a);i++)
- if(a[i]!='') {strcpy(a,&a[i]);break;}
- }
- else //将1.4321 变成14321
- { for(t=,i=;i<strlen(a)-;i++)
- { if(a[i]=='.') t=;
- if(t) a[i]=a[i+];
- }
- a[i]=;
- }
- }
- }
- void show(char a[])
- { int i;
- if(s>=strlen(a)) cout<<'.'<<setfill('')<<setw(s)<<a<<endl;// 前面补零
- else //不用补零,直接加入小数点输出
- {for(i=;i<strlen(a);i++)
- if(strlen(a)-s==i) {cout<<'.'<<&a[i]; break;}
- else cout<<a[i];
- cout<<endl;
- }
- }
- int main()
- {
- int n; char b[],a[];
- while(cin>>b>>n)
- { if(n==) {cout<<<<endl;continue;}
- s=;
- quw0(b);
- jilu(b);
- strcpy(a,b);
- for(int i=;i<=n;i++)
- chen(a,b);
- s*=n; //结果的小数位数
- show(a);
- }
- return ;
- }
poj1001的更多相关文章
- 高精度POJ1001
今天看到这道题了 poj1001 题目地址是http://bailian.openjudge.cn/practice/1001/ 英文看得懂,可是算法不明白,所以转别人的文章,留着给学生看看:乔高建( ...
- POJ-1001 Exponentiation 高精度算法
题目链接:https://cn.vjudge.net/problem/POJ-1001 以前写过一个高精度乘法,但是没有小数点,实现起来也没什么难得, 现在把代码都般过来,等会把旧电脑弄一弄,暂时就不 ...
- poj1001 Exponentiation 大数的幂
Description Problems involving the computation of exact values of very large magnitude and precision ...
- 【poj1001】 Exponentiation
http://poj.org/problem?id=1001 (题目链接) 题意 求实数R的n次方,要求高精度. Solution SB题Wa了一下午,直接蒯题解. 高精度,小数点以及去前导后导零很麻 ...
- 北大poj-1001
Description Problems involving the computation of exact values of very large magnitude and precision ...
- poj1001 Exponentiation
Description Problems involving the computation of exact values of very large magnitude and precision ...
- C# 高精度求幂 poj1001
高精度求幂 public static char[] exponentiation(string a,int r) { ]; string b = ""; string c = a ...
- poj1001(高精度)
Exponentiation Time Limit: 500MS Memory ...
- poj1001求幂
这道题目是实质上就是高精度的乘法,虽然是带小数点的数多少次幂,但是开始我们需要将它变为整数进行求幂,然后再加上小数点,然后要考虑前导0,有效数位问题,做的时候要十分的小心 #include<io ...
随机推荐
- 微信小程序开发之搞懂flex布局4——Main Axis
Main Axis——主轴 当flex-direction设置为row或row-reverse时,主轴的方向为水平方向.此时flex item为行内级元素. 当flex-direction设置为col ...
- Eclipse neon 4.6 安装tomcat
问题: Eclipse neon 4.6并没有内置Tomcat,所以当我产生想要导入.war,并部署到服务器时,会看到创建服务处是下面的情况: 也就是说,没有tomcat服务可以选择:为此我需配置To ...
- mysql中gbk_chinese_ci与gbk_bin区别
如果在query browser中选create new table在字符集的选择中collation栏有两个选择gbk_chinese_ci与gbk_bin gbk_bin是二进制存储.区分大小写的 ...
- python编程之如何在Windows上安装python
一.安装python 首先检查你的系统里是否安装了python,开始菜单里点击运行输入cmd打开一个命令窗口,或键盘快捷键windows+R打开,在窗口中输入python并回车,如果出现了Python ...
- alfred3配置
搜索功能配置 github https://github.com/search?utf8=%E2%9C%93&q={query} github'{query}' g baidu http:// ...
- python 单例模式的四种实现方法及注意事项
一.模块单例 Python 的模块就是天然的单例模式,因为模块在第一次导入时,会生成 .pyc 文件,当第二次导入时,就会直接加载 .pyc 文件,而不会再次执行模块代码. #foo1.py clas ...
- pom.xml文件模板、application文件模板、configuration逆向生成文件、
pom: <?xml version="1.0" encoding="UTF-8"?><project xmlns="http:// ...
- centos jdk 配置及版本切换
一. 环境变量: /etc/profile JAVA_HOME=/usr/lib/jdk1.8.0_91JRE_HOME=/usr/lib/jdk1.8.0_91/jreCLASS_PATH=.:$J ...
- OC字典的使用
在OC中,字符串.数组.字典是最常见的对象类型,但是在这三个当中,字典的用法相对较少,因为字典的属性和方法比较少,但是一个字典的用法比较复杂,因为在一个字典当中,既可以包含字符串,也可以包含数组,数组 ...
- IDEA添加项目为library
1.如果要作为library的项目没有被IDEA编译就先把项目放在IDEA里面编译一下,因为这样后面导入module会方便一点.下面直接附上步骤 2.假设你已经用IDEA编译好了作为library的项 ...