hdu-1063(大数)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1063
思路:1、大数乘法模板
2、考虑小数点的位置
3、乘法前后判断前后道0
参考文章:https://blog.csdn.net/z8110/article/details/50167049
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int a[],b[],c[];
char s[]; void f(int a[])
{
int i,j,k;
memset(c,,sizeof(c));
for(i=;i<;i++)
{
for(j=;j<;j++)
c[i+j]+=a[i]*b[j];
} for(i=;i<;i++)
{
if(c[i]>=) c[i+]+=c[i]/;
c[i]%=;
}
for(i=;i<;i++)
{
b[i]=c[i];
}
} int main(void)
{
int i,j,cnt,p1,p2,n;
while(~scanf("%s%d",s,&n))
{
//初始化
int l=strlen(s);
memset(b,,sizeof(b));
memset(c,,sizeof(c));
cnt=;
for(i=l-;i>=;i--)
if(s[i]=='.') cnt=l--i; // 判断小数点位置
//判断是否是小数
p1=;
for(i=l-;i>=;i--) //判断后导零
if(s[i]!='') break;
if(s[i]=='.') p1=;
for(i=l-;i>=;i--)
{
if(s[i]=='.') break;
}
if(i==-) p1=; //乘法计算
b[]=;
for(j=,i=l-;i>=;i--)
if(s[i]>=''&&s[i]<='') a[j++]=s[i]-'';
for(i=;i<n;i++)
f(a); //输出
for(i=;i>=cnt*n;i--)
if(b[i]) break;
for(;i>=cnt*n;i--)
printf("%d",b[i]);
if(p1==)
printf("."); //输出小数点
for(;i>=;i--) //判断,保证不输出前导零
{
p2=;
for(j=i;j>=;j--)
{
if(b[j])
{
p2=;
break;
}
}
if(p2) printf("%d",b[i]);
}
printf("\n");
}
return ;
}
hdu-1063(大数)的更多相关文章
- hdu 1063 Exponentiation 大数
Problem Description Problems involving the computation of exact values of very large magnitude and p ...
- hdu 1063(java写高精度)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1063 思路:最近刚学了java,然后就迫不及待想试试java写大数的好处了,呵呵,果然是很方便啊! i ...
- hdu 1002大数(Java)
A + B Problem II Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- hdu 5047 大数找规律
http://acm.hdu.edu.cn/showproblem.php?pid=5047 找规律 信kuangbin,能AC #include <stdio.h> #include & ...
- hdu 5050 大数
http://acm.hdu.edu.cn/showproblem.php?pid=5050 大数模板最大公约数 信kuangbin,能AC #include <cstdio> #incl ...
- hdu 4759 大数+找规律 ***
题目意思很简单. 就是洗牌,抽出奇数和偶数,要么奇数放前面,要么偶数放前面. 总共2^N张牌. 需要问的是,给了A X B Y 问经过若干洗牌后,第A个位置是X,第B个位置是Y 是不是可能的. Ja ...
- HDU 1018 大数(求N!的位数/相加)
Big Number Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total ...
- HDU 4927 大数运算
模板很重要 #include <cstdio> #include <cstring> #include <cstdlib> #include <iostrea ...
- hdu 1063 Exponentiation (高精度小数乘法)
//大数继续,额,要吐了. Problem Description Problems involving the computation of exact values of very large m ...
- hdu 5429(大数模板)
题意:判断是否是等比数列 a[i] * a[i] = a[i+1] * a[i-1] + 部分为0 的情况 /* 表示还没学java.... ,模板来自NK_test #include &l ...
随机推荐
- 未能同步 iPhone XXX,因为这台电脑不再被授权使用在此iPhone上购买的项目。
打包生成的ipa文件,安装到手机上,p12和ppf证书都正确,手机的udid也正确.用itunes安装到手机报错. 未能同步 iPhone XXX,因为这台电脑不再被授权使用在此iPhone上购买的项 ...
- 使用Travis进行持续集成
使用Travis进行持续集成 廖雪峰 持续集成:Continuous Integration,简称CI,意思是,在一个项目中,任何人对代码库的任何改动,都会触发CI服务器自动对项目进行构建,自动运行测 ...
- JS时间转时间戳,时间戳转时间。时间显示模式。
函数内容 // 时间转为时间戳 function date2timestamp(datetime) { var timestamp = new Date(Date.parse(datetime)); ...
- pandas datafram重命名列名称
方法一: 直接给column赋值 df.columns=["a", "b"], 所有的column全部重命名 example: import pandas as ...
- ubuntu 16.04 install wine
from: https://wiki.winehq.org/Ubuntu If your system is 64 bit, enable 32 bit architecture (if you ha ...
- Python中的操作符重载
运算符重载是指在方法中拦截内置的操作----当类的实例出现在内置操作中,Python会自动调用自定义的办法,并且返回自定义方法的操作结果. 类可以重载python的操作符 操作符重载使我们的对 ...
- Haskell语言学习笔记(61)Distributive
Distributive class Functor g => Distributive g where distribute :: Functor f => f (g a) -> ...
- HttpSession的关键属性和方法
1.当一个用户向服务器发送第一个请求时,服务器为其建立一个session,并为此session创建一个标识号:2.这个用户随后的所有请求都应包括这个标识号.服务器会校对这个标识号以判断请求属于哪个se ...
- linux 随笔
LINUX环境下的批处理文件的扩展名是.sh,而在windows环境的批处理文件名是.bat
- 可以foreach的 必须继承IEnumable 接口才行
只要是继承IEnumable 都可以用foreach遍历