⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 riadd2.cpp

📁 从1加到N还有N!两个算法实现 N自己设置大小 没有限制 只要内存够大 CPU够快就行 我算100!用1秒多 结果我记得好像有300多位呢
💻 CPP
字号:
#include "iostream"

#define MAXRANGE 40
#define MAXINPUT 20

using namespace std;

int product[MAXRANGE]={0},num[MAXRANGE]={0} , sum[MAXRANGE]={0};
void multarray();
void divi();
void show();

int main(int argc, char* argv[])
{
	
	int k=0,tmp=0; 
	char in[MAXINPUT];

	cout<<"input";
	cin>>in;

	for(int i=0;i<MAXINPUT;i++){
		if(in[i]==0){tmp=i;break;}
         
	}

	for(int j=(tmp-1);j>=0;j--){
		
		num[j]=(in[k]-48);
		k++;
	
	}

    for(int l=0;l<MAXRANGE;l++){
		sum[l]=num[l];
		
	}
 
	num[0]=num[0]+1;
	multarray();

	for(int h=0;h<MAXRANGE;h++)sum[h]=0;
	
	divi();
	show();
//	printf("Hello World!\n");
	return 0;
}

void multarray(){
	int overflow=0,overflowa=0;	

	for(int k=0;k<MAXRANGE;k++){
		
		for(int i=0;i<MAXRANGE;i++){
//			for(int j=0;j<MAXRANGE;j++)if(sum[j]>9)sum[j]=sum[j]%10;
			sum[i]=sum[i]*num[k]+overflow;
			overflow=0;
			overflow=sum[i]/10;
			sum[i]=sum[i]%10;
		}
		
		for(int t=0;t<k;t++){
			for(int b=MAXRANGE;b>0;b--)sum[b]=sum[b-1];
			sum[0]=0;
		}



		 for(int p=0;p<MAXRANGE;p++){
//			for(int j=0;j<MAXRANGE;j++)if(sum[j]>9)sum[j]=sum[j]%10;
			

			product[p]=product[p] + sum[p] + overflowa;
			overflowa=0;
            overflowa=product[p]/10;
			product[p]=product[p]%10;
		
		 }

		for(int y=0;y<MAXRANGE;y++)sum[y]=num[y];
		sum[0]=num[0]-1;
		

	
	}



}


void divi(){
    int last=0;
	for(int i=MAXRANGE-1;i>-1;i--){
		sum[i]=(product[i]+last*10)/2;
		last=0;
		last=product[i]%2;
	
	
	}
}

void show(){
	int flag=0;
	for(int i=MAXRANGE-1;i>-1;i--){
		if(sum[i]>0)flag=1;
		if(flag==1)cout<<sum[i];
	
	}


}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -