1樓:匿名使用者
/此程式實現了兩個大整數的乘法,注:整數用二進位表示。即每一位都是神老0或1表示渣瞎或。
例如:100011 1011101//程式中先輸入被乘數和乘數的位數,然後動態申請空間,以字元的形式來處理長整數的每一位。//模擬計算機乘法的實現,將整數乘法轉換為整數加法來實如伍現。
#include //將陣列元素左移x位,低位補0
void leftmove(char c,int len,int x)
if(x==0)
return ;
elsefor(int i=0;i=0;i--)
c[i+x]=c[i];
for(int j=0;j=0;i--)
temp=(a[i]-'0')+s[i]-'0')+c;
if(temp==1)
s[i]='1';
c=0;if(temp==2)
s[i]='0';
c=1;if(i==0)
for(int j=len-1;j>=0;j--)最高位有進位。
s[j+1]=s[j];
s[j+1]='1';
len+=1;
int main()
int length,i;
printf("請輸入被乘數、乘數的位數:");
int n1,n2;
scanf("%d%d",&n1,&n2);
char* a=new char[n1]; 被乘數。
char* b=new char[n2]; 乘數 char* s=new char[n1+n2]; 積。
for(i=0;i=0;i--)
if((b[i]-'0')=1)
leftmove(a,n1,n1-1-i); 若為1,將陣列a左移i位,低位補0
rightmove(s,length,n2-i-1); 將s陣列右移i位,高位補0
add(a,s,length); 將陣列a各位+到s上。
for(int j=0;jprintf("%c",s[j]);
printf("");return 0;
2樓:匿名使用者
最簡單的方法,就是模擬手算乘法,小學生都會的。
3樓:匿名使用者
高精度演算法。您是使用什麼語言的呢。?
40是用什麼兩個陣列(乘法)
4樓:網友
找它的因數不就知道了!都是乘法。
用c語言程式設計「使用陣列完成兩個超長(長度小於100)正整數的加法。」
5樓:嬉鬧
用字串實現,額呵呵。
使用陣列完成兩個超長(長度小於100)正整數的加法的源**。。無錯誤的
6樓:匿名使用者
看到這個問題,我囧++。下面隨便寫了乙個,有興趣的話自己寫個大整數類吧(加減乘除、冪、模、階乘。//大整數加法,只考慮正數。
#include
#include
using namespace std;#define maxnum 110
int arr1[maxnum], arr2[maxnum];
string s1, s2;int main()j = -1;
for(i=;i>=0;--i)
for(i=0;i= 10)
bstartoutput = false;
for(i=;i>=0;--i)else if(arr1[i] != 0)
if(bstartoutput == false)cout<<0;
cout輸入樣例。
輸出樣例。output sample:
c語言怎樣用陣列來運算超長的整數?
7樓:憑巨集朗
兩種辦法,一種用long long,這有八個bytes應該夠用了。另一種就是大整數的乘法,外面已經有人寫過了,隨便一搜便知。不懂再問。
8樓:網友
特別長的像你那種,可使用。
long long int(最長的整型變數了)輸出時用格式控制符%i64d // 是(i 的大寫加64d,別寫成l的小寫了)
特別特別特別長的,long long int也裝不下的,用字元陣列處理,那麼如何加減乘除就要你花一番心思了。
求100的階乘,用c語言中的陣列怎麼來求啊?能不能用陣列模擬乘法來算,再用上遞迴來寫一下程式
9樓:匿名使用者
又是你呀。不過說真的,很少有人會幫你寫的,高精畢竟太煩了。。你先試著自己寫一些高精的,有點感覺後,就自己試著寫。如兩個數相乘的。。。還得靠自己呀。。
有問題可以繼續問我,646203846。。。
10樓:匿名使用者
我用c++實現了這種演算法不過思路可以告訴你你建立3個足夠長的long陣列(或3條long鏈),每個陣列(節點)裡面存乙個不大於10000的正整數,然後利用豎式的演算法就可以計算出來,具體的計算你可以參考我的largedecimal運算。
輸入乙個正整數n(1~9),輸出九九乘法表前n*n項(將乘數、被乘數和乘積放入乙個二維陣列中,在輸
11樓:網友
for(i=0;i<=n;i++)
改成printf("");
for(i=1;i<=n;i++)
因為第一行你之前輸過了,所以只要從i=1開始就行了。
用遞迴法求p m n m nm與n為兩個正整數且要求mn。當m 12,n 8時
include stdio.h double fun double m,double n else return 1 int main c語言程式設計 m和n為兩個整數且m大於n求p m n m n 在下方的空白處填寫 float fun int m,int n for i 1 i n i 計算n的...
設陣列,每個元素都是不超過兩位數的正整數,試程式設計統計該數
一樓的演算法好像有點不對,比如a 10 則b 1 但是下邊的又是b 9 我寫了一個,你試下,不懂可直接問我,include include void main n,i printf 請輸入這個陣列的大小 scanf d n a int malloc n sizeof int printf 請輸入這個...
c語言程式設計,輸入兩個正整數m和n,求其最大公約數和最小公倍數
main p n m p是原來兩個數n,m的乘積.while m 0 求兩個數n,m的最大公約數.printf its maxgongyueshu d n n 列印最大公約數.printf its mingongbeishu d n p n 列印最小公倍數.基本原理如下 用歐幾里德演算法 輾轉相除法...