栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

国外c语言经典例题:打印一个规律独特的数字正方形

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

国外c语言经典例题:打印一个规律独特的数字正方形

原题目如下:
Print a pattern of numbers from 1to n as shown below. Each of the numbers is separated by a single space.

The input will contain a single integer n.

sample input
2
sample output

题目的中文意思是,用c语言设计一个程序,用户输入随机数字(1到100之间),即可打印出上述正方形图案。

思路:
根据图形和输入的数字观察,发现存在如下规律:
正方形边长=输入数字的两倍减1
每条边数字相同,越往里,边的数字减1.
好了,知道这两个规律,我们可以大致表述如下;

int len = n*2 - 1;
//边的规律

for(int i=0;i
        for(int j=0;j
        //定义两个变量,循环求出所有边的值
            int min = i < j ? i : j;
            //三目运算符比较这两个变量,因为正方中,大的数字的在外面
            min = min < len-i ? min : len-i-1;
            min = min < len-j-1 ? min : len-j-1;

本题答案:
好了,有了思路,本题自然轻松多了,因此本题求解如下:

#include 

int main() 
{

    int n;
    scanf("please input a number %d", &n);
    int len = n*2 - 1;
    for(int i=0;i
        for(int j=0;j
            int min = i < j ? i : j;
            min = min < len-i ? min : len-i-1;
            min = min < len-j-1 ? min : len-j-1;
            printf("%d ", n-min);
        }
        printf("n");
    }
    return 0;
}

假设我们输入的数为5,输出结果如下:

真诚的希望这篇博客能帮助到正好遇到这个问题的其他同学。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/856364.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号