| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1447 人关注过本帖
标题:高精度
只看楼主 加入收藏
心剑菩提
Rank: 1
等 级:新手上路
帖 子:249
专家分:0
注 册:2007-5-17
收藏
得分:0 
不好意思 真的希望能帮一下忙

前世五百次的回眸 才换来今生的擦肩而过
2007-10-15 22:49
心剑菩提
Rank: 1
等 级:新手上路
帖 子:249
专家分:0
注 册:2007-5-17
收藏
得分:0 
贴出来一下 谢谢

前世五百次的回眸 才换来今生的擦肩而过
2007-10-15 22:58
心剑菩提
Rank: 1
等 级:新手上路
帖 子:249
专家分:0
注 册:2007-5-17
收藏
得分:0 
#include <stdio.h>
#include <string.h>
#include <math.h>
int main()
{
char a[150]={0};
int n;
while(scanf("%s%d",a,&n)!=EOF)
{ int b[150]={0},i,j,lend,num1,num2,num,sum=0,ten=1,suger;
lend=strlen(a)-1;
for(i=0;i<=lend;i++)
if(a[i]=='.')
break;
num1=lend-i;
for(j=i;j<lend;j++)
a[j]=a[j+1];
lend=lend-1;
for(j=lend;j>=i;j--)
{ if(a[j]!='0')
break;
}
num2=lend-j;
lend=j;
num=(int)fabs(num1-num2);
num=num*n;
for(i=0;i<=lend;i++)
b[i]=a[i]-48;
do
{ sum=sum+b[lend]*ten;
ten=ten*10;
lend--;
} while(lend>=0);
int temp,la,digit[1000];
la = 0,digit[0] = 1;
for(temp=1;temp<=n;temp++)
{
digit[0] = digit[0]*sum;
for(i=1;i<=la;i++)
{
digit[i] = digit[i]*sum;
digit[i] = digit[i] + digit[i-1]/10;
digit[i-1] = digit[i-1]%10;
}
while(digit[la]>=10)
{
la= la + 1;
digit[la] = digit[la-1] /10;
digit[la-1] = digit[la-1]%10;
}
}
if(b[0]==0)
{ printf(".");
for(i=num;i>la+1;i--)
printf("0");
for(i=la;i>=0;i--)
printf("%d",digit[i]);
}
else if(num!=0)
{ for(i=la;i>=num;i--)
printf("%d",digit[i]);
printf(".");
for(i=num-1;i>=0;i--)
printf("%d",digit[i]);
}
else if(num==0)
for(i=la;i>=0;i--)
printf("%d",digit[i]);
printf("\n");
}
return 0;
}
另外
对于整数
#include <iostream>
using namespace std;
int main()
{
int n,temp,la,i,digit[310],c;
while(cin>>c>>n)
{
la = 0,digit[0] = 1;
for(temp=1;temp<=n;temp++)
{
digit[0] = digit[0]*c;
for(i=1;i<=la;i++)
{
digit[i] = digit[i]*c;
digit[i] = digit[i] + digit[i-1]/10;
digit[i-1] = digit[i-1]%10;
}
while(digit[la]>=10)
{
la= la + 1;
digit[la] = digit[la-1] /10;
digit[la-1] = digit[la-1]%10;
}
}
for(i=la;i>=0;i--)
cout<<digit[i];
cout<<endl;
}
return 0;
}

前世五百次的回眸 才换来今生的擦肩而过
2007-10-26 18:30
心剑菩提
Rank: 1
等 级:新手上路
帖 子:249
专家分:0
注 册:2007-5-17
收藏
得分:0 

前世五百次的回眸 才换来今生的擦肩而过
2007-10-26 18:32
快速回复:高精度
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019979 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved