解题思路:
m个奇数的中间项是m*m的积,其他的数就是依次减2

由数组存起来就好
注意事项:

参考代码:

#include<bits/stdc++.h> 
using namespace std;
int main()
{
	int m,flag=0,sum=0;
	cin>>m; 
	int arr[m];
	sum=m*m*m;
	flag=m*m;
	for(int i=0;i<m;i++)
	{
		arr[i]=flag-(m-1)+i*2; 
	}
	cout<<m<<"*"<<m<<"*"<<m<<"="<<sum<<"=";
	for(int j=0;j<m;j++)
	{
		cout<<arr[j];
		j<m-1?cout<<"+":cout<<endl;
		
	}
	return 0; 
}


点赞(1)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 3 条评论

ztc 6年前 回复TA
c++:
#include<bits/stdc++.h>
using namespace std;
int main(){
    int a,d[2000];
    cin>>a;
    for(int i=1;i<=a;i++)
		d[i]=a*a;
	if(a%2!=0)
	for(int i=1;i<=a;i++){
		if(i==(a+1)/2)break;
		d[i]+=2*((a+1)/2-i);
		d[a+1-i]-=2*((a+1)/2-i);
	}
	else
	for(int i=1;i<=a;i++){
		if(i==(a+1)/2){
			d[i]+=1;
			d[a+1-i]-=1;
			break;
		}
		if(a<=4){
			d[i]+=3;
			d[a+1-i]-=3;
		}
		else{
			if(i>=2&&i<=4){
			d[i]+=3;
			d[a+1-i]-=3;
		}
		else{
			d[i]+=3*((a+1)/2-i+1);
			d[a+1-i]-=3*((a+1)/2-i+1);
		}
		}
	}
	for(int i=1;i<=a;i++){
		if(i==a)cout<<d[i]<<endl;
		else cout<<d[i]<<" ";
	}
}
ztc 6年前 回复TA
c++:
#include<bits/stdc++.h>
using namespace std;
int main(){
    int a,d[2000];
    cin>>a;
    for(int i=1;i<=a;i++)
		d[i]=a*a;
	if(a%2!=0)
	for(int i=1;i<=a;i++){
		if(i==(a+1)/2)break;
		d[i]+=2*((a+1)/2-i);
		d[a+1-i]-=2*((a+1)/2-i);
	}
	else
	for(int i=1;i<=a;i++){
		if(i==(a+1)/2){
			d[i]+=1;
			d[a+1-i]-=1;
			break;
		}
		if(a<=4){
			d[i]+=3;
			d[a+1-i]-=3;
		}
		else{
			if(i>=2&&i<=4){
			d[i]+=3;
			d[a+1-i]-=3;
		}
		else{
			d[i]+=3*((a+1)/2-i+1);
			d[a+1-i]-=3*((a+1)/2-i+1);
		}
		}
	}
	for(int i=1;i<=a;i++){
		if(i==a)cout<<d[i]<<endl;
		else cout<<d[i]<<" ";
	}
}
ztc 6年前 回复TA
1