亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 大整數(shù).cpp

?? 大整數(shù)運算是計算機
?? CPP
字號:
#include "stdafx.h"
#include<iostream.h>
#include<math.h>/*用到pow()函數(shù)*/
#include<stdio.h>
#include<string.h>
#include<time.h>/*用到時間函數(shù)clock()*/
#define MAX 10000/*定義相乘的兩個數(shù)的最大位數(shù)*/

int adc(int x[],int xb,int xe,int y[],int yb,int ye,int z[],int zb,int ze,int flag)/*帶進位的加法*/ 
{int F=0;int dist;
 dist=xe-xb;
 z[ze]=x[xe]+y[ye]+flag;
 if(z[ze]>9)
 {z[ze]=z[ze]-10;
  F=1;}
 else F=0;
 for(int i=1;i<=dist;i++)
 {z[ze-i]=x[xe-i]+y[ye-i]+F;
  if(z[ze-i]>9)
  {z[ze-i]=z[ze-i]-10;
   F=1;}
  else F=0;}
  return F;
}

int sub(int x[],int n,int y[])/*減函數(shù),y[]為x[]的前半部分,減后放入y[]中*/
{int flag=0,i;
 for( i=1;i<=n/2;i++)/*判斷前半部分和后半部分那個大*/
 {if(x[i]<x[i+n/2])
	{y[0]=-1;break;}
  else 
	if(x[i]>x[i+n/2])
	{y[0]=1;break;}
    else 
	if(x[i]==x[i+n/2])
    continue;}
    if(i==n/2+1)/*如果前半部分和后半部分相等*/
	{for(i=1;i<=n/2;i++)
     y[i]=0;}
    else if(y[0]==1)/*前半部分比后半部分大*/
    for( i=n/2;i>=1;i--)
	{y[i]=x[i]-x[n/2+i]-flag;
     if(y[i]<0)/*不夠減,則向高位借位*/
	 {y[i]=y[i]+10;
      flag=1;}
     else flag=0;
	}else
	for(i=n/2;i>=1;i--)/*此處這樣處理是為了得到其絕對值*/
	{y[i]=x[n/2+i]-x[i]-flag;
     if(y[i]<0)
	 {y[i]=y[i]+10;
      flag=1;}
	 else flag=0;
	}return y[0];
}

void add(int x[],int y[],int n) /*此加法是求(x0*y1+x1*y0)*/
{int flag=0,i;
 if(x[0]==1)/*當x[]為正數(shù)時*/
 for( i=n;i>=0;i--)
 {x[i+1]=x[i+1]+y[i]+flag;/*兩個數(shù)直接帶進為相加*/
  if(x[i+1]>9)/*如果大于九,則調(diào)整,進位*/
  {x[i+1]=x[i+1]-10;
   flag=1;}
   else flag=0;
 }else if(x[0]==-1)/*當x[]為負數(shù)時*/
 {for( i=1;i<=n;i++)
  {if(y[i]<x[i+1])
	{y[0]=-1;break;}
   else if(y[i]>x[i+1])
	{y[0]=1;break;}
    else if(y[i]==x[i+1])
    continue;}
   if(i==n+1)/*如果這兩個數(shù)絕對值相等*/
	for(i=2;i<=n+1;i++)
	x[i]=0;
	else if(y[0]==1)/*當y[]絕對值大于x[]時*/
	{x[0]=1;
     for( i=n;i>=1;i--)
	 {x[i+1]=y[i]-x[1+i]-flag;
      if(x[i+1]<0)
		{x[i+1]=x[i+1]+10;
         flag=1;}
      else flag=0;
	 }
	}else   /*當y[]絕對值小于x[]時*/
	{x[0]=-1; 
     for( i=n;i>=1;i--)
	 {x[i+1]=x[1+i]-y[i]-flag;
      if(x[i+1]<0)
	  {x[i+1]=x[i+1]+10;
       flag=1;}
      else flag=0;
}}}}

int* mul(int x[],int y[],int n)  /*乘法函數(shù)*/
{ if(n==2)/*n==2的情況,避免無限遞歸調(diào)用*/
	{int *z;
     z=new int[5];
     int sum;
     sum=(x[1]*10+x[2])*(y[1]*10+y[2]);
     z[4]=sum%10;/*算出相應位的數(shù)值*/
     z[3]=sum%100/10;
     z[2]=sum%1000/100;
     z[1]=sum/1000;
     return z;}
    else
	{int *m0,*m1,*m2,*z,*p,*xtemp,*ytemp,*temp,*xt,*yt;
     int flag1,flag2,fg1,fg2,fg3,i;
     m0=new int[n+1];/*每個都預留符號位*/
     m1=new int[n+2];
     m2=new int[n+1];
     z=new int[2*n+1];
     xtemp=new int[n/2+1];
     ytemp=new int[n/2+1];
     temp=new int[n/2+1];
     m0[0]=m1[0]=m2[0]=m1[1]=0;
     for( i=1;i<=n/2;i++)/*將數(shù)的后半部分賦給寄存數(shù)組*/
	{xtemp[i]=x[i+n/2];
     ytemp[i]=y[i+n/2];}
     xt=x;yt=y;
     x=xtemp;y=ytemp;/*x,y為后半部分*/
     p=mul(x,y,n/2);/*將數(shù)的后半部分遞歸調(diào)用(x1*y1)*/
     for( i=1;i<=n;i++)
     m2[i]=*(p+i);/*將后半部分算好的數(shù)賦給m2*/
     x=xt;y=yt;
     for( i=1;i<=n/2;i++)/*將數(shù)的前半部分賦給寄存數(shù)組*/
	{xtemp[i]=x[i];
     ytemp[i]=y[i];}
     x=xtemp;y=ytemp;/*x,y為前半部分*/
     p=mul(x,y,n/2);/*將數(shù)的前半部分遞歸調(diào)用(x0*y0)*/
     for( i=1;i<=n;i++)/*相乘之后位數(shù)加一倍*/
     m0[i]=*(p+i);/*將前半部分算好的數(shù)賦給m0*/
     x=xt;y=yt;
     flag1=sub(y,n,ytemp);/*ytemp為前面部分的數(shù),返回相減的數(shù)的符號*/
     flag2=sub(x,n,xtemp);/*xtemp為前面部分的數(shù),返回相減的數(shù)的符號*/
     if(flag1*flag2==1) m1[0]=-1;/*判斷兩個相乘的數(shù)符號是否相等*/
     else  m1[0]=1;
	 x=xtemp;y=ytemp;/*此時兩數(shù)的前半部分 (x0-x1)*(y1-y0) */
     p=mul(x,y,n/2);
     for( i=1;i<=n;i++)
     m1[i+1]=*(p+i);        
     add(m1,m0,n);           
     add(m1,m2,n);
     for( i=1;i<=n/2;i++)
     z[n/2+n+i]=m2[n/2+i];/*z存放三個加數(shù)相加結果*/
     fg1=0;
     fg2=adc(m2,1,n/2,m1,n/2+2,n+1,z,n+1,n/2+n,fg1);
     fg3=adc(m1,2,n/2+1,m0,n/2+1,n,z,n/2+1,n,fg2);
     temp[n/2]=m1[1];/*將(x0-x1)*(y1-y0)的進位位賦給temp*/
     for( i=1;i<=n/2-1;i++)
     temp[i]=0;
     adc(temp,1,n/2,m0,1,n/2,z,1,n/2,fg3);
     delete m0,m1,m2,xtemp,ytemp,temp;
     return z;}
}

void main()
{ 
	char a[MAX],b[MAX];
	int lengtha,lengthb,d1,d2,n;
	int *x,*y,*p;
	int i,j;
    clock_t start,end;
    cout<<"輸入被乘數(shù):"<<endl;
    gets(a);
    lengtha=strlen(a);
    cout<<"\n你輸入被乘數(shù)的位數(shù)是 "<<lengtha<<" 位"<<endl;
    cout<<"\n輸入乘數(shù):"<<endl;
    gets(b);
    lengthb=strlen(b);
    cout<<"\n你輸入乘數(shù)的位數(shù)是 "<<lengthb<<" 位"<<endl;
    start=clock();/*記錄程序運行的起始時間*/
    if(lengtha>=lengthb)/*判斷是否位數(shù)滿足2的i次冪位數(shù),得到i的值*/
	{for( i=1;i<=15;i++)
     if(lengtha-(int)pow(2,i)<=0)/*2的i次冪*/
	 break;}
    else 
    {for( i=1;i<=15;i++)
     if(lengthb-(int)pow(2,i)<=0)
     break;}
    d1=(int)pow(2,i)-lengtha;/*記錄被乘數(shù)要補零的個數(shù)*/
    d2=(int)pow(2,i)-lengthb;/*記錄乘數(shù)要補零的個數(shù)*/
    n=(int)pow(2,i);/*得到相應2的i次冪位數(shù)*/
    x=new int[n+1];y=new int[n+1];
    for( i=1;i<=d1;i++)/*在輸入數(shù)前補零*/
    x[i]=0;
    for( i=1;i<=d2;i++)
    y[i]=0;
    for( i=d1+1;i<=n;i++)/*補零完后,在后面繼續(xù)輸入數(shù)*/
    x[i]=(int)a[i-d1-1]-48;/*把字符型轉換成整型*/
    for( i=d2+1;i<=n;i++)
    y[i]=(int)b[i-d2-1]-48;    
    p=mul(x,y,n);
    cout<<"\n運算結果為:"<<endl;
    for(i=1;i<=2*n;i++)
    if(!(*(p+i)==0))/*找到結果的開始位不為零的位置*/
    break;
    j=i-1;/*j為記錄非零位的起始地址*/
    for(i;i<=2*n;i++)/*從非零位開始輸出*/
    cout<<*(p+i);
    cout<<endl;
    cout<<"\n運算結果的位數(shù)為 "<<n*2-j<<" 位"<<endl;
    end=clock();/*記錄程序運行的結束時間*/
    cout<<"\n程序運行時間為 "<<end-start<<" 毫秒"<<endl;
	puts("\n按回車鍵退出程序!");
	getchar();
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品国产亚洲5555| 国产麻豆日韩欧美久久| 精品少妇一区二区三区免费观看| 国产一级精品在线| 亚洲一区电影777| 久久先锋资源网| 欧美午夜精品一区二区蜜桃| 国产一区二区三区国产| 亚洲国产日韩一级| 国产精品美女久久久久久久| 日韩欧美一区二区视频| 欧洲一区二区三区免费视频| 国产精一品亚洲二区在线视频| 午夜电影网亚洲视频| 中文字幕一区av| 亚洲精品在线网站| 欧美精品久久99| 99re热视频精品| 国产盗摄女厕一区二区三区| 免费在线观看精品| 亚洲第一精品在线| 综合网在线视频| 中文字幕成人网| 精品成人佐山爱一区二区| 欧美日韩精品综合在线| 91久久精品一区二区二区| 成人国产精品免费观看动漫 | 国产精品人妖ts系列视频| 日韩欧美的一区二区| 欧美色成人综合| 99精品视频中文字幕| 国产91丝袜在线观看| 国产毛片精品一区| 韩国精品主播一区二区在线观看 | 欧美三级视频在线观看| 99re这里只有精品首页| 成人av网站在线| 成人午夜免费av| 高清国产一区二区三区| 国产成人午夜精品5599| 国产a精品视频| 国产成人午夜视频| 成人国产精品免费观看视频| av激情成人网| 91欧美激情一区二区三区成人| 成人爱爱电影网址| 波多野结衣中文字幕一区二区三区| 国产成人精品影视| 99久久精品一区二区| 99久久精品一区| 日本精品一区二区三区高清| 色偷偷久久人人79超碰人人澡| 色综合久久88色综合天天6| 91蝌蚪porny| 欧美少妇xxx| 欧美精品 日韩| 精品国产凹凸成av人导航| 精品国产乱码久久| 国产欧美精品日韩区二区麻豆天美| 国产欧美日韩视频一区二区| 国产精品热久久久久夜色精品三区| 国产日产欧美一区二区三区| 亚洲欧美中日韩| 亚洲夂夂婷婷色拍ww47| 日韩精品免费视频人成| 久久超碰97中文字幕| 国产成人精品免费视频网站| 91美女片黄在线观看| 欧美日韩三级在线| 精品国产制服丝袜高跟| 久久精子c满五个校花| 综合久久给合久久狠狠狠97色 | 精品国产自在久精品国产| 国产日韩欧美a| 亚洲女人小视频在线观看| 午夜欧美电影在线观看| 狠狠色伊人亚洲综合成人| av在线一区二区| 欧美美女喷水视频| 国产精品午夜在线观看| 亚洲一区二区三区不卡国产欧美| 美女网站一区二区| av电影一区二区| 这里只有精品电影| 国产精品美女久久福利网站| 亚洲自拍偷拍欧美| 国产露脸91国语对白| 色爱区综合激月婷婷| 精品成人在线观看| 一区二区三区 在线观看视频| 免费精品视频最新在线| 不卡一区二区三区四区| 91精品婷婷国产综合久久| 国产精品久久久久一区二区三区共| 亚洲高清视频中文字幕| 成人精品国产福利| 欧美麻豆精品久久久久久| 国产精品免费网站在线观看| 日韩av一级片| 色综合久久88色综合天天免费| 欧美一二三四在线| 亚洲精品久久久蜜桃| 国产精品资源网| 欧美高清www午色夜在线视频| 久久成人av少妇免费| 色噜噜狠狠色综合中国| 久久久久久久久伊人| 天堂久久一区二区三区| 成人中文字幕电影| 日韩欧美一级片| 亚洲午夜在线电影| 色一区在线观看| 国产亚洲午夜高清国产拍精品| 亚洲成人精品影院| 91麻豆成人久久精品二区三区| wwwwxxxxx欧美| 日韩国产精品久久久| 在线中文字幕不卡| 国产精品麻豆视频| 国产成人三级在线观看| 日韩欧美美女一区二区三区| 婷婷中文字幕综合| 欧洲生活片亚洲生活在线观看| 国产日韩欧美综合在线| 久久精品国产一区二区三区免费看| 欧美日韩久久久一区| 亚洲一区精品在线| 色噜噜狠狠成人中文综合| 亚洲国产精品二十页| 高清在线观看日韩| 国产午夜精品美女毛片视频| 国产精品资源网| 国产亚洲精品精华液| 久久99精品视频| 欧美成人官网二区| 久久精品国产精品亚洲综合| 欧美一区二区国产| 日韩av不卡在线观看| 日韩欧美视频一区| 精品一区二区三区久久久| 欧美大片国产精品| 激情综合五月天| 久久午夜羞羞影院免费观看| 激情av综合网| 亚洲国产成人自拍| 91美女片黄在线| 亚洲国产精品一区二区www| 欧美日韩一级片在线观看| 日韩电影在线免费| 91麻豆精品国产91久久久使用方法| 天天综合色天天综合色h| 91精品婷婷国产综合久久性色| 蜜桃av一区二区三区电影| 精品国产1区二区| 国产成人综合视频| 亚洲欧洲精品一区二区三区不卡| 97se亚洲国产综合自在线| 亚洲最大的成人av| 91精品欧美久久久久久动漫 | 欧美日韩在线直播| 免费在线观看一区| 国产欧美一区二区精品性色| av在线不卡电影| 亚洲制服丝袜av| 精品久久久久久最新网址| 国产成人免费网站| 夜夜嗨av一区二区三区网页 | 亚洲靠逼com| 欧美日本在线看| 精品一区二区三区在线播放视频| 久久免费视频色| 色综合一区二区三区| 婷婷亚洲久悠悠色悠在线播放| 欧美mv日韩mv| 99这里只有精品| 日韩专区欧美专区| 国产欧美综合色| 欧美在线视频日韩| 国产麻豆日韩欧美久久| 亚洲一区二区三区免费视频| 精品国产亚洲一区二区三区在线观看 | 亚洲婷婷综合久久一本伊一区| 欧美三区免费完整视频在线观看| 青青草国产精品97视觉盛宴 | 久久久久久99久久久精品网站| 99国产精品国产精品毛片| 丝袜美腿高跟呻吟高潮一区| 国产偷国产偷亚洲高清人白洁| 在线亚洲欧美专区二区| 国产精品自拍在线| 亚洲国产精品综合小说图片区| 26uuu久久天堂性欧美| 日本韩国欧美国产| 国产一区二区三区四区五区入口| 国产精品美女久久久久久久网站| 欧美一区二区在线看| 91丝袜美腿高跟国产极品老师 | 欧美亚洲综合一区| 国产成人啪免费观看软件| 男男gaygay亚洲|