//宣告:本人所作部落格均為自己學習複習所用
題目:假定用乙個整型陣列表示乙個長整數,陣列的每個元素儲存長整數的一位數字,實際的長整數m表示為:m=a[k]×10k-1+a[k-1]×10k-2+….+a[2]×10+a[1]
其中a[0]儲存該長整數的位數。完成:長整數乘普通整數。
#include
#include
void
chartonum
(int num,
char arr)
}//將字元陣列逆序儲存在整型陣列中,低位在前,高位在後
//個位數為num[1],十位數num[2] ……
void
multiply
(int a,
int b,
int c,
int maxlen)
}//將兩個陣列的每一位相乘,相加的結果儲存到同乙個位置
for(i=
2;i<
2*maxlen+
1;i++
)//計算進製,陣列中的每個元素大於10的向高位進一位
}int
main()
}//判斷longnuma中的數是否為負數,如果是則去掉負號,長度減一
if(longnumb[0]
=='-')}
//判斷longnumb中的數是否為負數,如果是則去掉負號,長度減一
int maxlen=
strlen
(longnuma)
>
strlen
(longnumb)
?strlen
(longnuma)
:strlen
(longnumb)
;//求出兩個字元陣列中的最大長度
int a[
110]=;
int b[
110]=;
chartonum
(a,longnuma)
;chartonum
(b,longnumb)
;//將字元轉化成整數 並逆序儲存
int res[
201]=;
multiply
(a,b,res,maxlen)
;//對兩個整數進行相乘 得到逆序的結果
printf
("長整數乘積為:");
if(temp1==
1&&temp2==
0||temp1==
0&&temp2==1)
//若兩個數異號則加負號
int flag=1;
for(i=
2*maxlen+
1;i>=
2;i--
)printf
("%d"
,res[i]);
flag=0;
}//將逆序的元素正序,同時把正序後首位的0去掉
printf
("\n");
return0;
}
用長整數求取普通整數的階乘
袁紅崗的程式設計師修煉之道 引言 袁紅崗1994 年加盟金蝶,1996 年在整個行業還處在 dos時代時最早成功開發出基於 windows 平台的金蝶財務軟體,開創了依靠技術創新推動企業快速發展的典範 1998 年成功開發出基於三層結構元件技術的金蝶 k 3系統並引入金蝶企業應用軟體 率領當時的金蝶...
C語言綜合實驗2 長整數運算
1 實驗題目 長整型數運算,c中的long int所能表示的資料範圍有限,現要求程式設計完成超過long int所能表示的資料範圍以上的十進位制正的長整數的加法和乘法運算。1 int readlongint char x 此函式用於讀入乙個正的長整數到x中,函式返回長整數的實際長度 要求輸入時檢查所...
用C語言解「計算工資」題
某公司員工的工資計算方法如下 一周內工作時間不超過40小時,按正常工作時間計酬 超出40小時的工作時間部分,按正常工作時間報酬的1.5倍計酬。員工按進公司時間分為新職工和老職工,進公司不少於5年的員工為老職工,5年以下的為新職工。新職工的正常工資為30元 小時,老職工的正常工資為50元 小時。請按該...