1. 程式人生 > >高精度低法(高精除低精)(C語言實現)

高精度低法(高精除低精)(C語言實現)

原始碼&註釋

#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;
}

這就是高精度低法(高精除低精)的整段程式碼, 希望大家在看了這篇文章後理解和會使用高精度低法(高精除低精)的運算了

希望大家喜歡這篇文章!!! 如有問題請留言,謝謝!!!