这题的话思路挺简单的,主要是打一个高精乘,然后考虑一些细节的东西

码得挺少时间的,但是调错调了很久...

讲一下思路吧:

就是读入的时候,先把小数点去掉,mark一下小数点的位置

去掉小数点之后也就进行高精乘法即可,去掉前导零

之后计算一下小数点的位置

再去掉小数点后多余的零

以及特判k=1的情况,直接输出答案

细节的地方主要就是在模拟上吧,

我WA了几次:

1.当小数点后面没有数字的时候,当然不需要输出小数点...这个没有考虑进去

2.没有特判k=1的情况,因为答案是放在c数组里,所以当k=1的时候,没有答案

3.数组开小了....

附上代码:

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
using namespace std;
char s[201];
int n,m;
int l,mark;
bool f;
int a[100050],b[101],c[100001];
void into(){
l=strlen(s);
int i=1;
f=true;
while(i<=l){
if(s[i]=='.' && f){
mark=i;
f=false;
}
else{
a[i]=s[l-i]-'0';
i++;
}
}
mark=l-mark;
l=i-1;
for(int j=mark;j<l;j++) a[j]=a[j+1];
for(int j=1;j<=l;j++){
b[j]=a[j];
}
}
int main(){
freopen("input.txt","r",stdin);freopen("output.txt","w",stdout);
//freopen("data.txt","r",stdin);
while(cin>>s>>n){
if(n==1){
cout<<s<<"\n";
continue;
}
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
mark=0;
into();
l-=1;
int bl=l;
int sum=mark-1;
for(int k=2;k<=n;k++){
memset(c,0,sizeof(c));
for(int i=1;i<=l;i++)
for(int j=1;j<=bl;j++){
c[i+j-1]+=(a[i]*b[j]);
c[i+j]+=(c[i+j-1]/10);
c[i+j-1]%=10;
}
l+=bl;
l++;
mark=sum*k;
while(l>1 && !c[l] && l>mark) l--;
for(int i=1;i<=l;i++) a[i]=c[i];
}
for(int i=l;i>mark;i--){
printf("%d",c[i]);
}
int t=1;
for(int i=1;i<=mark;i++){
if(c[i]==0){
t++;
}
else break;
}
if(t-1==mark){
cout<<"\n";
continue;
}
else{
cout<<".";
for(int i=mark;i>=t;i--){
printf("%d",c[i]);
}
cout<<"\n";
} }
fclose(stdin);
fclose(stdout);
return 0;
}

最新文章

  1. IO流 FileOutputSteam在fos.txt写出hello
  2. codeforces298c
  3. php 封装mysql 数据库操作类
  4. HDU 1018 Big Number (阶乘位数)
  5. (转)使用 .NET 的 RNGCryptoServiceProvider 生成随机数
  6. Java遍历Map对象的四种方法
  7. 深入浅出 ThreadLocal(一)
  8. 50个很棒的Python模块
  9. Javascript中变量作用域(2)
  10. PHP设计模式:抽象工厂
  11. 如何让div弄成可以输入文字
  12. 计算机图形学(第2版 于万波 于硕 编著)第45页的Bresenham算法有错误
  13. nodejs+https 使用openssl (window)
  14. MyBatis学习笔记2--配置环境详解
  15. url-pattern / /*匹配
  16. Memento(备忘录)
  17. [Delphi] 调用ocx
  18. 区块链技术:每位CEO都应了解
  19. 复制自身程序到windows目录和system32目录下
  20. 软件测试工程师必备的SQL语句基础

热门文章

  1. python 时间处理
  2. HDU 4831 Scenic Popularity (段树)
  3. Android apk file
  4. VS解决方案创建
  5. Java数据结构与算法(3) - ch04栈(栈和转置)
  6. Redis源代码分析(二十七)--- rio制I/O包裹
  7. crm创建和编辑全局选项集
  8. poj 3273 Monthly Expense (二分)
  9. CreateMutex
  10. Android-Universal-Image-Loader学习笔记(两)--LruDiscCache