20分AC#4的看这里!!
查看原帖
20分AC#4的看这里!!
1062883
Kirinlv楼主2024/10/9 21:59

来,这个不怪你们 他可能输出样例显示的有点问题 你用下/* */注释,把输出样例看一下,其实是

01020304
05060708
09101112
13141516

          01
      0203
   040506
07080910

三角形的最后一个数是向最右端对齐的 所以如果出现显示问题,就会导致代码:

#include <bits/stdc++.h>
using namespace std;
int main(){
	int n,i,cnt=0;
	cin >> n;
	for(i=1;i<=n*n;i++){
		if((i-1)%n==0 && i!=1){
			cout << endl;
		}
		if(i<10){
			cout << '0';
		}
		cout << i;
	}
	cout << endl << endl;
	i = 2*n;
	while(i){
		i-=2;
		for(int j=1;j*2<=i;j++){
			cout << ' ';
		}
		for(int j=0;j*2<2*n-i;j++){
			cnt++;
			if(cnt<10){
				cout << '0';
			}
			cout << cnt;
		}
		for(int j=1;j*2<=i;j++){
			cout << ' ';
		}
		cout << endl;
	} 
	return 0;
}

然后我还没发现,以为是0或1的问题 于是我又打了个表

#include <bits/stdc++.h>
using namespace std;
int main(){
	int n;
	cin >> n;
	switch(n){
		case 0: break;
		case 1:
			cout << R"(01
01)";
			break;
		case 2:
			cout << R"(0102
0304

 01
0203)";
			break;
		case 3:
			cout << R"(010203
040506
070809

  01
 0203
040506)";
			break;
		case 4:
			cout << R"(01020304
05060708
09101112
13141516

   01
  0203
 040506
07080910)";
			break;
		case 5:
			cout << R"(0102030405
0607080910
1112131415
1617181920
2122232425

    01
   0203
  040506
 07080910
1112131415)";
			break;
	}
	return 0;
}

嘎嘎 但是红了 才发现问题,试了下输出样例

于是 嘎嘎嘎 总算好了

但是不死心的我还是想打表

就把代码按照新样例改了改

嘎嘎嘎嘎气死了呜呜

发现1那里没换行

最终啊哈哈哈哈哈

完整代码:

打表:

#include <bits/stdc++.h>
using namespace std;
int main(){
	int n;
	cin >> n;
	switch(n){
		case 0: break;
		case 1:
			cout << R"(01

01)";
			break;
		case 2:
			cout << R"(0102
0304

  01
0203)";
			break;
		case 3:
			cout << R"(010203
040506
070809

    01
  0203
040506)";
			break;
		case 4:
			cout << R"(01020304
05060708
09101112
13141516

      01
    0203
  040506
07080910)";
			break;
		case 5:
			cout << R"(0102030405
0607080910
1112131415
1617181920
2122232425

        01
      0203
    040506
  07080910
1112131415)";
			break;
		case 6:
			cout << R"(010203040506
070809101112
131415161718
192021222324
252627282930
313233343536

          01
        0203
      040506
    07080910
  1112131415
161718192021)";
			break;
		case 7:
			cout << R"(01020304050607
08091011121314
15161718192021
22232425262728
29303132333435
36373839404142
43444546474849

            01
          0203
        040506
      07080910
    1112131415
  161718192021
22232425262728)";
			break;
		case 8:
			cout << R"(0102030405060708
0910111213141516
1718192021222324
2526272829303132
3334353637383940
4142434445464748
4950515253545556
5758596061626364

              01
            0203
          040506
        07080910
      1112131415
    161718192021
  22232425262728
2930313233343536)";
			break;
		case 9:
			cout << R"(010203040506070809
101112131415161718
192021222324252627
282930313233343536
373839404142434445
464748495051525354
555657585960616263
646566676869707172
737475767778798081

                01
              0203
            040506
          07080910
        1112131415
      161718192021
    22232425262728
  2930313233343536
373839404142434445)";
			break;
		default:
			cout << "-1";
	}
	return 0;
}

非打表:

#include <bits/stdc++.h>
using namespace std;
int main(){
	int n,i,cnt=0;
	cin >> n;
	for(i=1;i<=n*n;i++){
		if((i-1)%n==0 && i!=1){
			cout << endl;
		}
		if(i<10){
			cout << '0';
		}
		cout << i;
	}
	cout << endl << endl;
	i = 2*n;
	while(i){
		i-=2;
		for(int j=1;j<=i;j++){
			cout << ' ';
		}
		for(int j=0;j*2<2*n-i;j++){
			cnt++;
			if(cnt<10){
				cout << '0';
			}
			cout << cnt;
		}
		cout << endl;
	} 
	return 0;
}

祝大家AC一片!!

2024/10/9 21:59
加载中...