當前位置:編程學習大全網 - 編程軟體 - C語言如何寫出計算100位大數的算法?

C語言如何寫出計算100位大數的算法?

#include"stdio.h"

int getlength(char a[]){

int i=0;

while(a[i])

i++;

return i;

}/*返回字符串的長度*/

int chartoint(char a){

return a-48;

}/*將字符編程整形*/

void creatarray(char a[],char b[]){

printf("請輸入第壹個數:");

scanf("%s",a);

printf("請輸入第二個數:");

scanf("%s",b);

}/*創建數組*/

void go(char a[],char b[],int s[]){

int alength=getlength(a);

int blength=getlength(b);

int i=alength-1;

int j=blength-1;

int k;/*s數組下標*/

int slength;

if(alength>blength)

slength=alength;

else

slength=blength;

k=slength;

while(i>=0&&j>=0)

s[k--]=chartoint(a[i--])+chartoint(b[j--]);

while(i>=0)

s[k--]=chartoint(a[i--]);

while(j>=0)

s[k--]=chartoint(b[j--]);

k=slength;

while(k>=2){

if(s[k]>=10){

s[k-1]++;

s[k]-=10;

}

k--;

}

printf("兩數之和為:");

if(s[1]>=10){

s[0]=1;

s[1]-=10;

for(i=0;i<=slength;i++)

printf("%d",s[i]);

}

else{

for(i=1;i<=slength;i++)

printf("%d",s[i]);

}

printf("\n");

}

void main(){

char a[1000],b[1000];

int s[1000];

int lab;

lab1: creatarray(a,b);

go(a,b,s);

printf("請輸入1繼續(想退出按其他數字鍵):");

scanf("%d",&lab);

if(lab==1)

goto lab1;

}

//該程序最高可求1000位數的加法運算(更高位數妳可相應設置),對於求減法和乘法也就大同小異了,這裏不再贅述,妳自己模仿修改壹下吧

  • 上一篇:java的中文全稱是什麽啊?
  • 下一篇:北大清華校園美女(校園美女代表)
  • copyright 2024編程學習大全網