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 ...
随机推荐
- json小知识
json转换新方法 上面是把一个json数组转换成map集合 fromObject()是通用的 map集合,bean对象,String转换成json 文件转换成字符串,在转换成json 生成json文 ...
- Redis主从复制原理
前言: 和MySQL主从复制的原因一样,Redis虽然读取写入的速度都特别快,但是也会产生读压力特别大的情况.为了分担读压力,Redis支持主从复制,Redis的主从结构可以采用一主多从或者级联结构, ...
- Flash Builder编译的swf为什么在bin-debug下运行正常,复制到其他文件夹就不正常
在Flash Builder/Flex Builder中,可以使用编译参数-use-network=false实现
- 12 python json&pickle&shelve模块
1.什么叫序列化 序列化是指把内存里的数据类型转变成字符串,以使其能存储到硬盘或通过网络传输到远程,因为硬盘或网络传输时只能接受bytes(字节) 2.用于序列化的两个模块,json和pickle ...
- C#怎么判断字符是不是汉字
.用ASCII码判断 在 ASCII码表中,英文的范围是0-,而汉字则是大于127,根据这个范围可以判断,具体代码如下: string text = "我去"; bool res ...
- 【干货】国外程序员整理的 C++ 资源大全(转)
转zi:http://www.csdn.net/article/2014-10-24/2822269-c++ 关于 C++ 框架.库和资源的一些汇总列表,由 fffaraz发起和维护. 内容包括:标准 ...
- 跨越数据库操作时注意要加dbo
跨越数据库操作时注意要加dbo insert into hrdb.dbo.TB_B_PROJECTS :这样是正确的 insert into hrdb.TB_B_PROJECTS :这样是错误的
- 写一个singleton
第一种:饱汉模式 public class SingleTon { private SingleTon(){ } //实例化放在静态代码块里可提高程序的执行效率,但也可能更占用空间 private f ...
- 用JDBC如何调用存储过程
package com.huawei.interview.lym; import java.sql.CallableStatement; import java.sql.Connection; imp ...
- pyplot文本显示
pyplot文本显示 pyplot中文字符显示 pyplot默认不支持中文字符,因为默认字体是sans-serif,英文字体不能显示中文 方法1,修改需要输出中文字符的地方 在有中文输出的地方,添加属 ...