大数相加减与乘法的运算
c4droid吧
全部回复
仅看楼主
level 12
关于大数相除谁有什么好的想法啊?[睡觉]
#include <stdio.h>
#include <string.h>
int *tonumber(char x[],int ans[],int len);
int main()
{
char x[100];
char y[100];
int ans1[100]={0};
int ans2[100]={0};
int answer[100]={0};
gets(x);
gets(y);
int i,j;
int a=strlen(x);
int b=strlen(y);
int maxlen=a>b?a:b;
int *p=tonumber(x,ans1,a);
int *q=tonumber(y,ans2,b);
int cnt1[100]={0};
for(i=0;i<maxlen;i++){
answer[i]=*(p+i)+*(q+i)+cnt1[i];
if(answer[i]>9){
answer[i]-=10;
cnt1[i+1]++;
}
}
printf("和为\n");
if(cnt1[i]>0){
printf("%d",cnt1[i]);
}
for(i=maxlen-1;i>=0;i--){
printf("%d",answer[i]);
}
printf("\n差为\n");
int cnt2[100]={0};
for(i=0;i<maxlen;i++){
answer[i]=*(p+i)-*(q+i)+cnt2[i];
if(answer[i]<0){
answer[i]+=10;
cnt2[i+1]--;
}
}
int cnt3[100]={0};
if(cnt2[i]==0){
for(i=maxlen-1;i>=0;i--){
printf("%d",answer[i]);
}
}else{
for(i=0;i<maxlen;i++){
answer[i]=*(q+i)-*(p+i)+cnt3[i];
if(answer[i]<0){
answer[i]+=10;
cnt3[i+1]--;
}
}
printf("-");
for(i=maxlen-1;i>=0;i--){
printf("%d",answer[i]);
}
}
printf("\n积为:\n");
int cnt4[100]={0};
for(i=0;i<a;i++){
for(j=0;j<b;j++){
cnt4[i+j]+=ans1[i]*ans2[j];
}
}
for(i=0;i<a+b;i++){
if(cnt4[i]>9){
cnt4[i-1]+=cnt4[i]/10;
cnt4[i]%=10;
}
}
for(i=a+b-2;i>=0;i--){
printf("%d",cnt4[i]);
}
getch();
return 0;
}
int *tonumber(char x[],int ans[],int len)
{
int i;
for(i=0;i<len;i++){
ans[i]=x[len-i-1]-'0';
}
return ans;
}
2015年08月16日 07点08分 1
level 11
你不会没有做过高精度吧[汗][汗]
2015年08月16日 11点08分 5
???
2015年08月16日 11点08分
回复
�ۿ�2436
:高精度算法,大数运算
2015年08月16日 12点08分
@ljt12138 对啊,加减乘写好了,还有除法啊
2015年08月16日 12点08分
回复
�ۿ�2436
:百度有的。。竖式嘛。
2015年08月16日 22点08分
level 8
大神,帮忙
   -- 你眼中有春秋,胜过我见过和爱过的一切山川与河流。
2015年08月16日 16点08分 7
头文件stdio
2015年08月16日 16点08分
回复 扣扣2436 :原来如此[黑线]   --来自限量镶金包玉你绝对买不起版客户端。
2015年08月16日 16点08分
level 8
这个呢
   -- 所有的孤独与热情只能留在冬天说给风听。
2015年08月16日 16点08分 8
标点符号
2015年08月16日 17点08分
回复 扣扣2436 :哪个?   --来自限量镶金包玉你绝对买不起版客户端。
2015年08月16日 17点08分
回复
��500
:你把源码发上来
2015年08月16日 17点08分
level 8
#include<stdio.h>
int main()
{
printf(“学习\nc语言”);
getch();
return 0;
}
   -- 所有的孤独与热情只能留在冬天说给风听。
2015年08月16日 17点08分 9
#include <stdio.h> int main() { printf("学习\nc语言"); getchar(); return 0; }
2015年08月16日 17点08分
回复 扣扣2436 :求qq   --来自限量镶金包玉你绝对买不起版客户端。
2015年08月16日 17点08分
level 1
老哥,看下我的私信
2018年03月28日 06点03分 10
1