1 条题解
-
0
自动搬运
来自洛谷,原作者为

MZY666
「It's time to see what I can do_To test the limits and break through.」搬运于
2025-08-24 22:13:47,当前版本为作者最后更新于2020-03-17 12:02:54,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
Update:之前过审过后由于文章转移博客链接没了,现在重交。真的麻烦管理了,特此说明QAQ。
A掉这道题后,我第一次惊叹地说出了:
我谔谔。
咳咳,进入正题了。
【 题意概括 】
观察样例,根据输入输出不同的正方形和三角形矩阵。
没错,就这样。
【 思路 】
要一步一步来。
令输入为 。
在正方形中,对于第 行的第 个数,这个数的值为 .
在三角形矩阵中,先令 .
当 时,此处输出 的值,随后 值 .
否则,此处用空格补齐。
记得每一个数都要补零哦。
好的,下面进入代码环节。
【 代码实现 + 注释 】
#include<bits/stdc++.h>//万能头文件好 using namespace std; int main(){ int n,i,j,wei=0,weii,where; scanf("%d",&n);//输入n //wei表示n*n的位数,weii表示当前数的位数(好补零) while(pow(10,wei)<=n*n)wei++;//算出n*n的位数 if(n==0)return 0;//特判 // printf("%d",wei);//测试用 //下面进入正方形的输出 for(i=1;i<=n;i++){ for(j=1;j<=n;j++){ weii=0;//初始化为0 while(pow(10,weii)<=n*(i-1)+j)weii++;//算当前数的位数 while(weii<wei){ printf("0"); weii++; }//补零 printf("%d",n*(i-1)+j);//输出该数 } printf("\n");//记得换行 } //下面进入三角形的矩阵的输出 printf("\n");//记得换行 where=1;//初始化,第一个数为1 for(i=1;i<=n;i++){ for(j=1;j<=n;j++){ weii=0;//初始化为0 while(pow(10,weii)<=where)weii++;//同理,算当前数的位数 if(n-j<i){//如果这个数应该输出来 while(weii<wei){ printf("0"); weii++; } printf("%d",where); where++;//记得加1 }//同上理 else{//否则 weii=0;//把这个数当成0位 while(weii<wei){ printf(" "); weii++; }//输出空格 } } printf("\n");//记得换行 } return 0;//over~ }打完后暗想:这是不是该一道橙题把(指码量)
结果 WA。QAQ
无奈之下看了看别人的题解。我谔谔!竟然说只要小于 直接补一个 !
这不是我的错了好伐,这是没给数据范围的锅(强行甩锅)QWQ.
那咱们直接把 的位数改成 不就好了嘛。
最后附上最终AC代码:
#include<bits/stdc++.h>//万能头文件好 using namespace std; int main(){ int n,i,j,wei=0,weii,where; scanf("%d",&n); // while(pow(10,wei)<=n*n)wei++; wei=2;//唯一不同的地方就是这两行 if(n==0)return 0;//特判 // printf("%d",wei);//测试用 for(i=1;i<=n;i++){ for(j=1;j<=n;j++){ weii=0; while(pow(10,weii)<=n*(i-1)+j)weii++; while(weii<wei){ printf("0"); weii++; } printf("%d",n*(i-1)+j); } printf("\n"); } printf("\n"); where=1; for(i=1;i<=n;i++){ for(j=1;j<=n;j++){ weii=0; while(pow(10,weii)<=where)weii++; if(n-j<i){ while(weii<wei){ printf("0"); weii++; } printf("%d",where); where++; } else{ weii=0; while(weii<wei){ printf(" "); weii++; } } } printf("\n"); } return 0; }然而尴尬的是,当我把这份题解写完后数据范围才加了上去 QAQ。(不过好像还是没说超过10就补0?
对了,如果有建议请私信,作者自愿禁言了。否则将无法回复您哦!
完结撒花~(疯狂暗示 AWA.
- 1
信息
- ID
- 4704
- 时间
- 1000ms
- 内存
- 125MiB
- 难度
- 1
- 标签
- (无)
- 递交数
- 0
- 已通过
- 0
- 上传者