/*‧ 大數 A 除 以大數 B:
1. 使 A 與 B 向左對齊。 ( 在 B 後補 0 使其位數與 A 同 )
2. 用迴圈測出最小數 N 使 ( NxB )>A 。
3. 商數即為 (N-1)x( 對齊時所補的 0) 。
4. 用迴圈依序做完餘數 ( 一開始的 B 補零後不斷
除以 10) ,直到餘數小於 B 本身為止。
5. 迴圈內所有商數相加即為所求商數。
*/
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
void subtract(int ,int *,int *,int *,int );
void reverse(char *);
int N;
int main()
{
char A[100],B[100];
int A1[1000],B1[1000],C1[1000],D1[1000];
int n,a,b,i,j;
gets(A);//取數值
gets(B);
a=strlen(A);//取長度和長度差
b=strlen(B);
n=(strlen(A)-strlen(B));
for(i=0;i<n;i++)//補零
B[b+i+1]=0;
for(i=0;i<a;i++)//字元轉成數
A1[i]=A[i]-48;
for(i=0;i<b;i++)
B1[i]=B[i]-48;
subtract(a,A1,B1,C1,D1);
--障礙中--
system("PAUSE");
return 0;
}
void reverse(char*s1)
{
int n;
int i;
int temp;
n = strlen(s1);
for (i=0; i<n/2; i++)
{
temp = s1[i];
s1[i]=s1[n-i-1];
s1[n-i-1]=temp;
}
return;
}
--障礙中--void subtract(int N,int *a,int *b,int *c,int d)//d是商1
{
int i,borrow;
d=0;
for(i=n;i>=0;i--)
{
borrow=0;
if(a[n]>=b[n])
{
c[i]=a[n]-b[n]
d=d+1;
}
else
{
c[i]=c[i]+10;
c[i]=c[i]+a[n]-b[n];
d=d+1
}
c[i]=c[i]a[n]-b[n]-borrow
}
}
}