众所周知,题目中的 他想构造一个长宽都是 n 且每行每列的和都是 k 的幻方
所以我们是不是可以把这个幻方变成这样:
k 0 0 0 ... 0
0 k 0 0 ... 0
0 0 k 0 ... 0
0 0 0 k ... 0
.............
0 0 0 0 ..k 0
0 0 0 0 ... k
(让k为一条斜线)
正好有n行
想一想,举一个栗子:
3 4
4 0 0
0 4 0
0 0 4
这样就可以让每一行的和相等
没错,又是一道坑人的题目
结构有了,但我无比的害怕测试点不一样...
结果AC
Code代码如下:
C++:
#include<iostream>
#include<cstdio>
#include<bits/stdc++.h>
using namespace std;
int i,j,k,n;
int main(){
cin>>n>>k;
for(i=1;i<=n;i++){
for(j=1;j<=n;j++){
if(j==i){//画出"斜线";
cout<<k<<" ";
}else{
cout<<"0 ";
}
}
cout<<endl;
}
return 0;
}
C:
#include<iostream>
#include<cstdio>
#include<bits/stdc++.h>
using namespace std;
int i,j,k,n;
int main(){
scanf("%d %d",&n,&k);
for(i=1;i<=n;i++){
for(j=1;j<=n;j++){
if(j==i){
printf("%d ",k);
}else{
printf("0 ");
}
}
printf("\n");
}
return 0;
}
题解完美结束,注刷题愉快!