高精度低法(高精除低精)(C語言實現)
阿新 • • 發佈:2018-12-15
原始碼&註釋
#include<stdio.h> #include<string.h> char s[1000000]; int a[1000000],b[1000000]; int len,lenb; int d,yu; /*-------------高精度除法(低)--------------*/ void chu_di() //高精除低精 { int yu=0; memset(a,0,sizeof(a)); //清空陣列a memset(b,0,sizeof(b)); len=strlen(s); //s的長度 for(int i=0;i<=len-1;i++) a[i+1]=s[i]-'0'; for(int ii=1;ii<=len;ii++) { b[ii]=(yu*10+a[ii])/d; yu=(yu*10+a[ii])%d; } int lenb=1; while(b[lenb]==0&&lenb<len) lenb++; printf("結果:\n"); printf("%s ÷ %d = ",s,d); for(int j=lenb;j<=len;j++) printf("%d",b[j]); if(yu!=0) printf("......%d",yu); printf("\n"); } //高精度除法(高)你懂了嗎 void print() //輸出函式 { printf("高精度除法(低)(By STY)\n\n"); printf("退出請按“Ctrl+Z”(在鍵盤上),並按回車,謝謝使用!\n"); printf("請輸入兩個數字:\n"); printf("數字:(用空格隔開)\n"); printf("(前一個數字是大數,後一個不是)\n"); } int main() { print(); while (scanf("%s%d",s,&d)!=EOF) { chu_di(); //引用高精度除法函式 printf("\n\n"); print(); } return 0; }
這就是高精度低法(高精除低精)的整段程式碼, 希望大家在看了這篇文章後理解和會使用高精度低法(高精除低精)的運算了
希望大家喜歡這篇文章!!! 如有問題請留言,謝謝!!!