| 19 | 1/1 | 返回列表 |
| 查看: 1680 | 回復: 18 | |||
| 本帖產生 2 個 程序強帖 ,點擊這里進行查看 | |||
[交流]
【求助】那位達人給我個大數相乘的算法吧 謝謝了
|
|||
| 看了一個大數相乘的算法,運行了一下,但是不對,想看看高手的代碼,先謝啦 |
» 搶金幣啦!回帖就可以得到:
+1/486
+1/185
+1/181
+1/89
+1/86
+1/82
+5/40
+2/14
+1/7
+1/6
+1/6
+1/4
+1/4
+1/3
+1/3
+1/3
+1/3
+2/2
+1/1
+1/1
|
#include #include using namespace std; int *multi(int *num1,int size1,int *num2,int size2) {//返回位數為size1+size2 int size=size1+size2; int *ret=new int [size]; int i=0; memset(ret,0,sizeof(int)*size); for(i=0;i int k=i; for(int j=0;j ret[k++]+=num2*num1[j]; } } for(i=0;i if(ret>=10) { ret[i+1]+=ret/10; ret=ret%10; } } return ret; } int main() { /*int m,n,num1[100],num2[100]; cout<<"輸入第一個數的位數"< cout<<"輸入第一個數"< cin>>num1; } cout<<"輸入第二個數位數"< cout<<"輸入第二個數"< cin>>num2; } */ int num1[]={3,2}; int num2[]={1,1}; int *ret=multi(num1,2 ,num2,2 ); for(int i=3 ;i>=0;i--) { cout< } delete [] ret;//內存釋放 cin.get(); return 0; } 這是那個代碼 去上課了 現(xiàn)在才回復 不好意思啊 我試了那兩個 是反著的 而且也不太懂 想看看高手的易讀些的代碼 謝謝 |
|
#include #include using namespace std; int *multi(int *num1,int size1,int *num2,int size2) {//返回位數為size1+size2 int size=size1+size2; int *ret=new int [size]; int i=0; memset(ret,0,sizeof(int)*size); for(i=0;i int k=i; for(int j=0;j ret[k++]+=num2*num1[j]; } } for(i=0;i if(ret>=10) { ret[i+1]+=ret/10; ret=ret%10; } } return ret; } int main() { /*int m,n,num1[100],num2[100]; cout<<"輸入第一個數的位數"< cout<<"輸入第一個數"< cin>>num1; } cout<<"輸入第二個數位數"< cout<<"輸入第二個數"< cin>>num2; } */ int num1[]={3,2}; int num2[]={1,1}; int *ret=multi(num1,2 ,num2,2 ); for(int i=3 ;i>=0;i--) { cout< delete [] ret;//內存釋放 cin.get(); return 0; } 這是那個代碼 去上課了 現(xiàn)在才回復 不好意思啊 我試了那兩個 是反著的 而且也不太懂 想看看高手的易讀些的代碼 謝謝 |
|
#include #include using namespace std; int *multi(int *num1,int size1,int *num2,int size2) {//返回位數為size1+size2 int size=size1+size2; int *ret=new int [size]; int i=0; memset(ret,0,sizeof(int)*size); for(i=0;i int k=i; for(int j=0;j ret[k++]+=num2*num1[j]; } } for(i=0;i if(ret>=10) { ret[i+1]+=ret/10; ret=ret%10; } } return ret; } int main() { /*int m,n,num1[100],num2[100]; cout<<"輸入第一個數的位數"< cout<<"輸入第一個數"< cin>>num1; } cout<<"輸入第二個數位數"< cout<<"輸入第二個數"< cin>>num2; } */ int num1[]={3,2}; int num2[]={1,1}; int *ret=multi(num1,2 ,num2,2 ); for(int i=3 ;i>=0;i--) { cout< delete [] ret;//內存釋放 cin.get(); return 0; } 這是那個代碼 去上課了 現(xiàn)在才回復 不好意思啊 我試了那兩個 是反著的 而且也不太懂 想看看高手的易讀些的代碼 謝謝 |
|
#include #include using namespace std; int *multi(int *num1,int size1,int *num2,int size2) {//返回位數為size1+size2 int size=size1+size2; int *ret=new int [size]; int i=0; memset(ret,0,sizeof(int)*size); for(i=0;i int k=i; for(int j=0;j ret[k++]+=num2*num1[j]; } } for(i=0;i if(ret>=10) { ret[i+1]+=ret/10; ret=ret%10; } } return ret; } int main() { /*int m,n,num1[100],num2[100]; cout<<"輸入第一個數的位數"< cout<<"輸入第一個數"< cin>>num1; } cout<<"輸入第二個數位數"< cout<<"輸入第二個數"< cin>>num2; } */ int num1[]={3,2}; int num2[]={1,1}; int *ret=multi(num1,2 ,num2,2 ); for(int i=3 ;i>=0;i--) { cout< delete [] ret;//內存釋放 cin.get(); return 0; } 這是那個代碼 去上課了 現(xiàn)在才回復 不好意思啊 我試了那兩個 是反著的 而且也不太懂 想看看高手的易讀些的代碼 謝謝 |
|
#include #define N 10000 void main() { int a[N],n,k,i,j,m,flag=1;//flag代表位數 printf("請輸入一個100以內的正數" ;scanf("%d",&n); for(i=1;i<=N;i++) a=0;//這個循環(huán)使得數組里的每一個元素初值都為0 a[1]=1;//為了便于累乘運算,特殊的將a[1]賦值為1 for(k=1;k<=n;k++)//大循環(huán)用于計算小于n的所有的數 { flag=1; for(i=1;i<=k;i++) { for(j=1;j<=flag;j++) a[j]*=i; for(j=1;j<=flag;j++) { if(a[j]>9)//從低位到高位判斷是否大于9,如果大于,則進位 { for(m=1;m<=flag;m++) { if(a[flag]>9) flag++;//控制所求得的數的階乘的位數 a[m+1]+=a[m]/10; a[m]=a[m]%10;//將數字分離到每一個數組元素里 } } } } printf("%d的階乘的全部有效數字為",k); for(;flag>=1;flag--) printf("%d",a[flag]);//從高位往低位依次輸出 printf("\n\n" ;for(i=1;i<=N;i++) a=0; a[1]=1;//每次運行以上步驟時都會改變數組a中的值,須再次賦值 } } |

祝福
| 19 | 1/1 | 返回列表 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 一志愿085600中科院寧波所276分求調劑 +16 | 材料學257求調劑 2026-03-28 | 17/850 |
|
|---|---|---|---|---|
|
[考研] 070300化學279求調劑 +9 | 哈哈哈^_^ 2026-03-31 | 11/550 |
|
|
[考研] 考研材料工程351分調劑 +4 | 整個好的 2026-03-31 | 4/200 |
|
|
[考研] 安徽大學專碩生物與醫(yī)藥專業(yè)(086000)324分,英語已過四六級,六級521,求調劑 +10 | 美味可樂雞翅 2026-03-26 | 11/550 |
|
|
[考研] 085600,321分求調劑 +7 | 大饞小子 2026-03-31 | 7/350 |
|
|
[考研] 070300化學354求調劑 +15 | 101次希望 2026-03-28 | 15/750 |
|
|
[考研] 330分求調劑 +6 | qzenlc 2026-03-29 | 6/300 |
|
|
[考研] 考研調劑求助 +7 | 13287130938 2026-03-31 | 7/350 |
|
|
[考研] 土木304求調劑 +3 | 頂級擦擦 2026-03-31 | 3/150 |
|
|
[考研] 274求調劑 +6 | xiao愛同學 2026-03-30 | 6/300 |
|
|
[有機交流]
10+3
|
kaobao456 2026-03-29 | 4/200 |
|
|
[考研] 085600 286分 材料求調劑 +11 | 麻辣魷魚 2026-03-27 | 12/600 |
|
|
[考研] 327求調劑 +5 | 小卡不卡. 2026-03-29 | 5/250 |
|
|
[考研] 317分 一志愿南理工材料工程 本科湖工大 求調劑 +12 | 芋泥小鈴鐺 2026-03-28 | 12/600 |
|
|
[考研] 0703本科鄭州大學求調劑 +7 | nhj_ 2026-03-25 | 7/350 |
|
|
[考研] 總分293求調劑 +8 | 加一一九 2026-03-25 | 11/550 |
|
|
[考研] 321求調劑 +7 | 璞玉~~ 2026-03-25 | 8/400 |
|
|
[考研] 071000生物學求調劑,初試成績343 +7 | 小小甜面團 2026-03-25 | 7/350 |
|
|
[考研] 085600,材料與化工321分調劑 +4 | 大饞小子 2026-03-27 | 6/300 |
|
|
[考研] 調劑 +4 | 柚柚yoyo 2026-03-26 | 4/200 |
|