1335: 【入门】数字走向I
#include<bits/stdc++.h>
using namespace std;
int a[11][11];
int main(){
int n;
cin>>n;
int m=1;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
a[i][j]=m;
m++;
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cout<<setw(3)<<a[i][j];
}
cout<<endl;
}
return 0;
}
1352: 【入门】拐角VI
#include <bits/stdc++.h>
using namespace std;
int n, a[10][10];
int main()
{
scanf("%d", &n);
for(int i=1; i<=n; ++i){
a[n+1-i][i]=i;
for(int j=i+1; j<=n; ++j){
a[n+1-i][j]=a[j-i][i]=i;
}
}
for(int i=1; i<=n; ++i){
for(int j=1; j<=n; ++j){
printf("%3d",a[i][j]);
}
printf("\n");
}
return 0;
}
1347: 【入门】拐角I
#include <bits/stdc++.h>
using namespace std;
int n, a[10][10];
int main()
{
scanf("%d", &n);
for(int i=1; i<=n; ++i){
a[i][i]=i;
for(int j=i+1; j<=n; ++j){
a[i][j]=a[j][i]=a[i][i];
}
}
for(int i=1; i<=n; ++i){
for(int j=1; j<=n; ++j){
printf("%3d",a[i][j]);
}
printf("\n");
}
return 0;
}
1341: 【入门】对角线I
#include <bits/stdc++.h>
using namespace std;
int n, a[10][10];
int main() {
scanf("%d", &n);
for(int i=1; i<=n; ++i){
a[i][i]=1;
}
for(int i=1; i<=n; ++i){
for(int j=1; j<=n; ++j){
printf("%3d",a[i][j]);
}
printf("\n");
}
return 0;
}
1358: 【入门】有趣的数字图形IV
#include <iostream>
#include <cstdio>
using namespace std;
int main(){
int n;
scanf("%d",&n);
int arr[13][13]={0};
for(int i=0;i<n;i++){
arr[i][i]=i+1;
}
for(int i=n-1;i>=0;i--){
for(int j=i+1;j<=n;j++){
arr[i][j]=arr[i+1][j]+arr[i][j-1];
}
}
for(int i=n-1;i>=0;i--){
for(int j=0;j<n;j++){
if(arr[i][j]==0){
printf("%5c",' ');
}
else{
printf("%5d",arr[i][j]);
}
}
if(i>0)
printf("\n");
}
return 0;
}
1336: 【入门】数字走向II
#include <iostream>
#include <iomanip>
using namespace std;
int main(){
int i,n,j,c,t;
cin>>n;
t=n*n;c=0;
for (i=1; i<=n; ++i){
t=t-n;
for (j=1; j<=n; ++j){
cout<<setw(3)<<t+j;
}
cout<<endl;
}
return 0;
}
1353: 【入门】拐角VII
#include <bits/stdc++.h>
using namespace std;
int n, a[10][10];
int main() {
scanf("%d", &n);
for(int i=1; i<=n; ++i){
a[i][1]=n+1-i;
for(int j=2; j<=n; ++j){
if(j<=n+1-i){
a[i][j]=n+1-i;
}
else{
a[i][j]=a[i][j-1]+1;
}
}
}
for(int i=1; i<=n; ++i){
for(int j=1; j<=n; ++j){
printf("%3d",a[i][j]);
}
printf("\n");
}
return 0;
}
1348: 【入门】拐角II
#include <bits/stdc++.h>
using namespace std;
int n, a[10][10];
int main()
{
scanf("%d", &n);
for(int i=1; i<=n; ++i){
a[i][i]=n+1-i;
for(int j=1; j<i; ++j){
a[i][j]=a[j][i]=a[i][i];
}
}
for(int i=1; i<=n; ++i){
for(int j=1; j<=n; ++j){
printf("%3d",a[i][j]);
}
printf("\n");
}
return 0;
}
1342: 【入门】对角线II
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
int a[n][n];
for(int i=1;i<=n;i++){
for(int j=n;j>=1;j--){
if(i==j){
cout<<setw(3)<<"1";
}
else{
cout<<setw(3)<<"0";
}
}
cout<<endl;
}
return 0;
}
1359: 【基础】螺旋方阵
#include <bits/stdc++.h>
using namespace std;
int n, cnt=1, row=1, column=1, a[10][10];
int flag=1;
int main() {
cin >>n;
while(1){
if(flag==1){
while(column<=n && a[row][column]==0){
a[row][column]=cnt;
cnt++;
column++;
}
row++;
column--;
flag=3;
if(cnt>n*n){ //如果此时已经填满n*n个数了,就跳出循环
break;
}
}
if(flag==3){
while(row<=n && a[row][column]==0){ //只要下边的没有填充,而且没有超出数组范围
a[row][column]=cnt; //就一直填充
cnt++;
row++; //行++
}
column--; //接下来要从右往左了,列要--
row--; //由于刚才的while循环使得行多加了一个,因此行要--
flag=2; //flag标记为2,接下来要从右往左了
if(cnt>n*n){ //如果此时已经填满n*n个数了,就跳出循环
break;
}
}
if(flag==2){
while(column>=1 && a[row][column]==0){ //只要左边的没有填充,而且没有超出数组范围
a[row][column]=cnt; //就一直填充
cnt++;
column--; //列--
}
row--; //接下来要从下往上了,行要--
column++; //由于刚才的while循环使得列多减了一个,因此列要++
flag=4; //flag标记为4,接下来要从下往上了
if(cnt>n*n){ //如果此时已经填满n*n个数了,就跳出循环
break;
}
}
if(flag==4){
while(row>=1 && a[row][column]==0){ //只要上边的没有填充,而且没有超出数组范围
a[row][column]=cnt; //就一直填充
cnt++;
row--; //行--
}
column++; //接下来要从左往右了,列要++
row++; //由于刚才的while循环使得行多减了一个,因此行要++
flag=1; //flag标记为1,接下来要从左往右了
if(cnt>n*n){ //如果此时已经填满n*n个数了,就跳出循环
break;
}
}
}
for(int i=1; i<=n; ++i){
for(int j=1; j<=n; ++j){
printf("%3d", a[i][j]);
}
printf("\n");
}
return 0;
}
1337: 【入门】数字走向III
#include<stdio.h>
main()
{
int N;
scanf("%d",&N);
for(int i=1;i<=N;i++)
{
for(int j=i;j<=N*N-N+i;j+=N)
{printf("%3d",j);}
printf("\n");
}
}
1354: 【入门】拐角VIII
#include <bits/stdc++.h>
using namespace std;
int n, a[10][10];
int main() {
scanf("%d", &n);
for(int i=1; i<=n; ++i){
a[i][n]=i;
for(int j=n-1; j>=1; --j){
if(n+1-j<=i){
a[i][j]=i;
}
else{
a[i][j]=a[i][j+1]+1;
}
}
}
for(int i=1; i<=n; ++i){
for(int j=1; j<=n; ++j){
printf("%3d",a[i][j]);
}
printf("\n");
}
return 0;
}
1349: 【入门】拐角III
#include <bits/stdc++.h>
using namespace std;
int n, a[10][10];
int main(){
scanf("%d", &n);
for(int i=1; i<=n; ++i){
a[i][i]=n+1-i;
for(int j=i+1; j<=n; ++j){
a[i][j]=a[j][i]=a[i][i];
}
}
for(int i=1; i<=n; ++i){
for(int j=1; j<=n; ++j){
printf("%3d",a[i][j]);
}
printf("\n");
}
return 0;
}
1360: 【基础】回形方阵
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a;
cin >> a;
int N = a * 2 + 1;
int n[N];
for (int i = 0; i < N; i++)
{
cout<<" ";
for (int j = i; j < N - i; j++)
n[j] = a;
for (int j = N - i - 1; j <= i - 1; j++)
n[j] = -a;
for (int j = 0; j < N; j++)
cout << n[j] << " ";
cout << endl;
--a;
}
return 0;
}
1338: 【入门】数字走向IV
#include<cstdio>
using namespace std;
int main(){
int N;
scanf("%d",&N);
for(int i=1;i<=N;i++)
{
for(int j=N*N-N+i;j>=i;j-=N)
{printf("%3d",j);}
printf("\n");
}
}
1355: 【入门】有趣的数字图形I
#include<iostream>
#include<iomanip>
using namespace std;
void hinput(int x,int a[]) {
for (int k = 0; k < x; k++)
cout << setw(5) << a[k];
}
int main() {
int n;
cin >> n;
int a[100];
for (int i = 0; i < 100; i++)
a[i] = i + 1;
for (int i = 1; i <= n; i++) {
int x = n - i + 1;
for (int j = 1; j <= n; j++) {
if (i <= j) {
hinput(x, a);
break;
}
else cout << " ";
}
cout << "\n";
}
return 0;
}
1350: 【入门】拐角IV
#include <bits/stdc++.h>
using namespace std;
int n, a[10][10];
int main() {
scanf("%d", &n);
for(int i=1; i<=n; ++i){
for(int j=1; j<=n; ++j){
if(j<=i){
a[i][j]=i;
}
else{
a[i][j]=a[i][j-1]+1;
}
}
}
for(int i=1; i<=n; ++i){
for(int j=1; j<=n; ++j){
printf("%3d",a[i][j]);
}
printf("\n");
}
return 0;
}
1344: 【入门】斜角II
#include <bits/stdc++.h>
using namespace std;
int n, a[10][10];
bool flag;
int main() {
scanf("%d", &n);
for(int i=1; i<=n; ++i){
a[i][1]=i;
flag=false;
for(int j=2; j<=n; ++j){
if(a[i][j-1]==n){
flag=true;
}
if(flag==false){
a[i][j]=a[i][j-1]+1;
}
else{
a[i][j]=a[i][j-1]-1;
}
}
}
for(int i=1; i<=n; ++i){
for(int j=1; j<=n; ++j){
printf("%3d",a[i][j]);
}
printf("\n");
}
return 0;
}
1361: 【基础】马鞍数
#include <bits/stdc++.h>
using namespace std;
bool flag;
int n, m, a[11][11], ans, mn[11], mx[11], row[11], column[11];
int main() {
scanf("%d %d", &n, &m);
for(int i=1; i<=n; ++i){
mn[i]=10;
for(int j=1; j<=m; ++j){
scanf("%d", &a[i][j]);
mx[j]=a[i][j];
}
}
for(int i=1; i<=n; ++i){
for(int j=1; j<=m; ++j){
mn[i]=min(mn[i], a[i][j]);
}
}
for(int i=1; i<=m; ++i){
for(int j=1; j<=n; ++j){
mx[i]=max(mx[i], a[j][i]);
}
}
for(int i=1; i<=n; ++i){
for(int j=1; j<=m; ++j){
if(a[i][j]==mn[i] && a[i][j]==mx[j]){
printf("%d %d %d\n", i, j, a[i][j]);
flag=true;
}
}
}
if(flag==false){
printf("not exist");
}
return 0;
}
1339: 【入门】数字走向V
#include<bits/stdc++.h>
using namespace std;
int n, a[11][11], cnt=1;
int main()
{
scanf("%d", &n);
for(int i=n; i>=1; --i){
for(int j=n; j>=1; --j){
a[i][j]=cnt;
cnt++;
}
}
for(int i=1; i<=n; ++i){
for(int j=1; j<=n; ++j){
printf("%3d", a[i][j]);
}
printf("\n");
}
return 0;
}
1351: 【入门】拐角V
#include <bits/stdc++.h>
using namespace std;
int n, a[10][10];
int main() {
scanf("%d", &n);
for(int i=1; i<=n; ++i){
a[i][n+1-i]=i;
for(int j=1; j<=n-i; ++j){
a[i][j]=a[i+j][n+1-i]=a[i][n+1-i];
}
}
for(int i=1; i<=n; ++i){
for(int j=1; j<=n; ++j){
printf("%3d",a[i][j]);
}
printf("\n");
}
return 0;
}
1345: 【入门】斜角III
#include <bits/stdc++.h>
using namespace std;
int n, a[10][10];
bool flag;
int main(){
scanf("%d", &n);
for(int i=1; i<=n; ++i){
a[i][1]=i;
flag=false;
for(int j=2; j<=n; ++j){
if(a[i][j-1]==n){
flag=true;
}
if(flag==false){
a[i][j]=a[i][j-1]+1;
}
else{
if(a[i][j-1]==n){
a[i][j]=1;
}
else{
a[i][j]=a[i][j-1]+1;
}
}
}
}
for(int i=1; i<=n; ++i){
for(int j=1; j<=n; ++j){
printf("%3c",a[i][j]+'A'-1);
}
printf("\n");
}
return 0;
}
1346: 【入门】斜角IV
#include <bits/stdc++.h>
using namespace std;
int n, a[10][10];
bool flag;
int main() {
scanf("%d", &n);
for(int i=1; i<=n; ++i){
a[i][1]=n-i+1;
flag=false;
for(int j=2; j<=n; ++j){
if(a[i][j-1]==n){
flag=true;
}
if(flag==false){
a[i][j]=a[i][j-1]+1;
}
else{
a[i][j]=a[i][j-1]-1;
}
}
}
for(int i=1; i<=n; ++i){
for(int j=1; j<=n; ++j){
printf("%3d",a[i][j]);
}
printf("\n");
}
return 0;
}
1340: 【入门】数字走向VI
#include<bits/stdc++.h>
using namespace std;
int n, a[11][11], cnt=1;
int main()
{
scanf("%d", &n);
for(int i=1; i<=n; ++i){
for(int j=n; j>=1; --j){
a[i][j]=cnt;
cnt++;
}
}
for(int i=1; i<=n; ++i){
for(int j=1; j<=n; ++j){
printf("%3d", a[i][j]);
}
printf("\n");
}
return 0;
}
1357: 【入门】有趣的数字图形III
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
scanf("%d",&n);
int arr[n][n];
int i=0;
int j=0;
int cnt=1;
int k=0;
int space=n-1;
for(int i=0;i<n;i++){
for(int k=0;k<space;k++){
printf("%5c",' ');
}
for(int j=space;j<n;j++,cnt++){
printf("%5d",cnt);
}
space--;
cnt=1;
printf("\n");
}
return 0;
}
1343: 【入门】斜角I
#include <bits/stdc++.h>
using namespace std;
int n, a[10][10];
int main() {
scanf("%d", &n);
for(int i=1; i<=n; ++i){
a[i][1]=a[i-1][1]+1;
for(int j=2; j<=n; ++j){
a[i][j]=a[i][j-1]+1;
}
}
for(int i=1; i<=n; ++i){
for(int j=1; j<=n; ++j){
printf("%3d",a[i][j]);
}
printf("\n");
}
return 0;
}