由於編程語言提供的基本數值數據類型表示的數值範圍有限,不能滿足較大規模的高精度數值計算,因此需要利用其他方法實現高精度數值的計算,於是產生了大數運算。大數運算主要有加、減、乘三種方法。
基本介紹
- 中文名:大數運算
- 概念:很大的數值的數進行一系列的運算
- 學科:高等數學
- 套用:空間力學
簡介
原理
套用
Total Submission(s): 69615Accepted Submission(s): 12678
#include <stdio.h>#include <string.h>int main(){ char str1[1001],str2[1001]; int t,i,len_str1,len_str2,len_max,num=1,k; scanf("%d",&t); while(t--) { int a[1001]={0},b[1001]={0},c[1001]={0}; scanf("%s",str1); len_str1=strlen(str1); for(i=0;i<=len_str1-1;++i) a[i]=str1[len_str1-1-i]-'0'; scanf("%s",str2); len_str2=strlen(str2); for(i=0;i<=len_str2-1;++i) b[i]=str2[len_str2-1-i]-'0'; if(len_str1>len_str2) len_max=len_str1; else len_max=len_str2; k=0; for(i=0;i<=len_max-1;++i) { c[i]=(a[i]+b[i]+k)%10; k=(a[i]+b[i]+k)/10; } if(k!=0) c[len_max]=1; printf("Case%d:\n",num); num++; printf("%s+%s=",str1,str2); if(c[len_max]==1) printf("1"); for(i=len_max-1;i>=0;--i) { printf("%d",c[i]); } printf("\n"); //if(t>=1) //printf("\n"); } return 0;}