兩個大數相乘

2021-04-16 03:16:10 字數 1353 閱讀 5443

兩個大數相乘

2007-08-27 00:35

question:

(1),用乙個整型陣列表示乙個大數,陣列的每個元素儲存大數的一位數字,則實際的大數d表示為:   d=a[k]*10的k-1次冪+a[k-1]*10的k-2次冪+......+a[2]*10+a[1]    其中a[0]儲存該大數的位數.

(2),實現兩個大數相乘.

(3),再此基礎上實現兩個大數相除

solution:

/*本程式假設所輸入的大數均在20位以內,並且輸入數字時候假定不出現非法情況(例如不存在這樣情況123a78ty等)

這裡只完成了大數的乘法運算

*/#include "stdio.h"

#define max 21

void inputnumber(int );                           //輸入大數

void initnumber(int );                              //初始化用於存放結果的陣列

void multi(int ,int ,int );                        //進行大數乘法

void singlemulti(int ,int,int );                 //對大數乘以一位數的函式

void add(int ,int );                                 //對結果進行錯位相加

void printresult(int );                               //輸出結果

void main()

void inputnumber(int largenumber)

largenumber[0] = i;                                             //largenumber[0]表示大數的有多少位}

void initnumber(int result)

void multi(int number1,int number2,int result)}

void singlemulti(int number1,int number2,int temper)

if (t > 0)

else

temper[0] = 2 * max -2 - c;}

void add(int result,int temper)

if (t == 1)

result[c] = 1;

pos--;}

void printresult(int result)

示例結果為:

兩個大數相乘

兩個大數相乘 char multiply char char 給了兩個字串,每個都是代表了乙個很長的10進製表示的數 比如 char str1 23456789009877666555544444 char str2 346587436598437594375943875943875 最後求出他們的...

兩個大數相乘JAVA版

public class mymultiply public static void covertdata char data,int len public static void multiply char a,int alen,char b,int blen 對齊逐位相乘 for int j 0...

兩個大數(50位以上)相乘

廢話也不多說,這個純粹也是考一點點邏輯問題的,也很簡單 不是寫的很好,也沒有太多功夫去優化,請大牛勿噴。include define n 101 定義乙個存放結果的字元陣列 char sum 2 n 1 將字元轉換成數字 int char to int char ch 將數字轉換成字元 char i...