验证尼科彻斯定理

/**********************验证尼科彻斯定理***************************************************************************/
//验证尼科彻斯定理,即:任何一个整数m的立方都可以写成m个连续奇数之和。
//除了这里的,可参考利用vector的,http://blog.csdn.net/sunnyyoona/article/details/46731353

void main(){
	while(1){
	printf("请输入m=");
	int m=0;
	scanf("%d",&m);
	nikecesi(m);
	}
}

void nikecesi(int m){

	if(m==0) printf("m不能为0");
	bool flag=false;
	int sum0=m*m*m;
	int sum1=0,start;
	for(int i=1;i<=sum0;i+=2){
	   
		sum1=0;
		start=i;
		for(int j=0;j<m;j++){
		  sum1=sum1+start;
		  start+=2;
		}
		if(sum1==sum0) {
			flag=true;
			print_(m,i,flag);
			return;
		}
	}
	
	flag=false;
	print_(m,0,false);

}
//m 为输入的数,
//i为开始加的奇数
//flag为是否找到的标志位
void print_(int m,int i,bool flag){
	if(flag==true){
		for(int k=0;k<m;k++){
		  printf(" %d ",i+2*k);
		  if(k<m-1) printf("+");
		}
	}
	else printf("-1");
	
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值