四平方和

2022-06-28 19:03:48 浏览数 (1)

本文最后更新于 1163 天前,其中的信息可能已经有所发展或是发生改变。

代码语言:javascript复制
#include<iostream>
#include<cstring>
#include<cmath>
using namespace std;
int arr[4];
int arr_final[4];
int dg(int n,int step){
	//cout<<"n:"<<n<<" step:"<<step<<endl;
	if(step>3){
		return 0;
	}
	int sq=sqrt(n);
	//cout<<"sq:"<<sq<<endl;
	if(sq*sq==n){
		if(step==0){
			arr[3]=sq;
			for(int i=0;i<4;i  ){
				cout<<arr[i]<<" ";
			}
			cout<<endl;
			return 1;
		} else{
			arr[step]=sq;		
			for(int i=0;i<4;i  ){
				arr_final[i]=arr[i];
				cout<<arr[i]<<" ";
			}
			cout<<endl;
			return 1;
		}
	}
//	for(int i=sq;i>=0;i--){
//		arr[step]=i;
//		dg(n-i*i,step 1);
//		arr[step]=0;
//	}
	for(int i=0;i<=sq;i  ){
		arr[step]=i;
		if(dg(n-i*i,step 1)==1){
			return 1;
		}
		arr[step]=0;
	}
}
int main(){
	memset(arr,0,sizeof(arr));
	memset(arr_final,0,sizeof(arr_final));
	int n;
	cin>>n;
	dg(n,0);
//	cout<<"---------------"<<endl;
//	for(int i=0;i<4;i  ){
//		cout<<arr_final[i]<<" ";
//	}
	return 0;
} 

Post Views: 217

0 人点赞