解题思路:
观察即可 这类题 主要是找规律 找找关联
如图a 观察 可得 每一组斜线数据 从起点到终点 都是从小到大排列 因此我们只需要让上一个终点可以到下一个起点,就可以了,怎么找 加上坐标如图b 再看 所有的起点和终点关于 对角线对称所有的终点之间就差一个单位 (就是说 上一个终点(x,y) 和下一个终点(x,y++)差一个单位 y ++ 即可,而起点 和终点 关于对角线对称 所以终点(x,y) 他对应的起点则是(y,x))。这样 就让上一个终点通过关系 到下一个起点了。
当然 方法很多 ,这只是个人理解。阅览有问题点击原文
图 a 图b
注意事项:
参考代码:
#include<stdio.h> int main() { int n; while(~scanf("%d", &n)){ int a[110][110]={0};//初始化 int i=1,tn=n,x=0,y=0; // i代表 需要填的数值 tn循环的次数 x,y 起点坐标 while(tn--){ while(x>=0&&y<n)a[x--][y++]=i++; // 边界跳出条件 循环填数 x-- y++ 就代表 按左下到右上的对角线移动填数 x++;//刚跳出边界的x肯定变成-1了 因此要回溯下回到终点 y不用回 因为本来就要y++ int tem=x;x=y;y=tem;// 将终点变为起点 交换坐标 } for(x=0;x<n;x++){//打印 上三角 图形 for(y=0;y<n-x;y++) printf("%d ",a[x][y]); printf("\n"); } } return 0; }
0.0分
7 人评分
2005年春浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:822 |
简单编码 (C++代码)(这里推荐用switch)浏览:959 |
点我有惊喜!你懂得!浏览:2212 |
C语言程序设计教程(第三版)课后习题11.1 (C语言代码)浏览:791 |
C语言程序设计教程(第三版)课后习题11.8 (C语言代码)浏览:606 |
2003年秋浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:629 |
时间转换 (Java代码)浏览:572 |
C语言训练-素数问题 (C语言代码)浏览:1654 |
C语言程序设计教程(第三版)课后习题6.10 (C语言代码)浏览:749 |
P1001 (C语言代码)浏览:799 |