經典演算法11 任意長度整數加法

2021-06-15 04:13:21 字數 1491 閱讀 2512

#include #include #include #define stack_init_size 20

#define stackincrement 10

/*定義堆疊*/

typedef char elemtype;

typedef structsqstack;

/*初始化棧*/

void initstack(sqstack *s)

/*入棧操作,將e壓入棧中*/

void push(sqstack *s, elemtype e)

*(s->top) = e; /*放入資料*/

s->top++;

} /*出棧操作,用e將棧頂元素返回*/

void pop(sqstack *s , elemtype *e)

/*計算堆疊s當前的長度*/

int stacklen(sqstack s)

void add(sqstack *s1,sqstack *s2,sqstack *s3)

else

c = 0; /*不產生進製*/

push(s3,a3); /*將結果入棧s3*/

}if(stacklen(*s1)!=0) /*棧s1不為空的情況*/

else

c = 0; /*不產生進製*/

push(s3,a3); /*將結果入棧s3*/}}

else if(stacklen(*s2)!=0) /*棧s1不為空的情況*/

else

c = 0; /*不產生進製*/

push(s3,a3); /*棧s1不為空的情況*/}}

if(c==1)

push(s3,'1'); /*如果最後有進製,將字元』1』入棧s3*/

}

int main()

getchar(); /*接收回車符*/

printf("please input the second integer\n"); /*輸入第二個任意長整數,按」#」結尾*/

scanf("%c",&e);

while(e!='#')

add(&s1,&s2,&s3); /*加法運算,將結果存放在s3中*/

printf("the result is\n");

while(stacklen(s3)!=0) /*輸出結果,列印在螢幕上*/

return 0;

python基礎程式設計 11 任意正整數的因數分解

把乙個合數分解成若干個質因數的乘積的形式,即求質因數的過程叫做分解質因數。python練習題問題如下 要求 將乙個正整數分解質因數 例如您輸入90,分解列印90 2 3 3 5。python解題思路分析 這道題需要分三部分來分解,具體分解說明如下。1 首先當這個質數恰等於n的情況下,則說明分解質因數...

任意長度的高精度大整數加法

方法 這裡用了資料結構棧,實際上棧更方便實現高精度加法。步驟 1 第乙個資料加數按輸入順序 高位到低位 入棧1。此時棧頂為最低位 2 第二個資料加數按輸入順序 高位到低位 入棧2。此時棧頂為最低位 3 將棧1 棧2均pop出棧頂做加法,並考慮進製,結果入棧3,這時棧3正好是低位入棧。4 處理多餘的棧...

任意長度的高精度大整數加法

方法 這裡用了資料結構棧,實際上棧更方便實現高精度加法。步驟 1 第乙個資料加數按輸入順序 高位到低位 入棧1。此時棧頂為最低位 2 第二個資料加數按輸入順序 高位到低位 入棧2。此時棧頂為最低位 3 將棧1 棧2均pop出棧頂做加法,並考慮進製,結果入棧3,這時棧3正好是低位入棧。4 處理多餘的棧...