方形硬币(Square Coins)

2022-06-28 18:56:04 浏览数 (1)

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

代码语言:javascript复制
#include<iostream>
#include<cstring>
#include<cmath>
using namespace std;
int money;
int array[17];
int array1[300];
int answer=0;
class cla{
	public:
		void search(int step,int temp){
			if(this->sum(array1)==money){
				//this->print(array1);
				answer  ;
			}
			else if(this->sum(array1)<money){
				for(int i=temp;i<17;i  ){
					array1[step]=array[i];
					this->search(step 1,i);
					array1[step]=0;
				}				
			}
		}
		int sum(int array1[300]){
			int i=0,temp=0;
			while(array1[i]!=0){
				temp =array1[i];
				i  ;
			}
			return temp;
		}
		void print(int array1[300]){
			int i=0;
			while(array1[i]!=0){
				cout<<array1[i]<<" ";
				i  ;
			}
			cout<<endl;
		}
};

void initialization(int array[17]){
	for(int i=0;i<17;i  ){
		array[i]=pow(i 1,2);
	} 
}
int main(){
	initialization(array);
	cin>>money;
	while(money!=0){
		answer=0;
		memset(array1,0,sizeof(array1));		
		cla c;
		c.search(0,0);
		cout<<answer<<endl;
		cin>>money;
	}	
	return 0;
} 

Post Views: 196

0 人点赞